JS应用程序中基于DOM的XSS保护
DOM based XSS protection in JS app
我真的很困惑基于dom的XSS攻击。我只想保护任何服务器检索到的数据输出到JS应用程序中的dom(使用innerHTML)。转义HTML实体或为安全属性转义引号等等。然后我读到了基于dom的XSS,我真的不知道它与转义HTM1有什么不同。https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_事件_备忘单#XSS_Prevention_Rules_Summary
在该表中,您可以看到基于dom的XSS:的示例
<script>document.write("UNTRUSTED INPUT: " + document.location.hash);<script/>
文章建议您必须应用本文中描述的技术:https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet
如果我错了,请纠正我,但这个例子应该使用简单的html实体转义来完全保护。
<script>document.write("UNTRUSTED INPUT: " + escapeHTML(document.location.hash));<script/>
其中escapeHTML对html实体进行编码。
我不知道第二篇文章是关于什么的,什么是<%===>符号(用谷歌搜索是不可能的)这是服务器端的语言吗?逃离JS服务器端是有意义的,那么本文中的提示是什么?因为这篇文章对我来说根本没有意义,如果它只是针对静态文件中的普通JS。
更新:我只想知道转义HTML是否是使用innerHTML方法动态插入DOM所唯一需要的东西。当然,我知道url和样式需要特别注意,正如我链接的第一篇文章中所述。
攻击可能来自服务器或DOM。存储XSS攻击和反射XSS攻击来自服务器,当有人将他们的坏代码拿到你的数据库或服务器上执行时就会发生。简而言之,防止坏代码进入服务器的方法是保护数据传输方法(输入、按钮、表单、URL、查询字符串)。存储和反射XSS攻击
基于DOM的XSS攻击更为广泛。DOM内置的唯一安全性是同源策略。它说,如果代码是从同一个域触发的,那么"它必须是安全的"。问题是HTML的限制非常宽松,一个页面上接受的上下文太多,可能会相互交叉并影响。您可以在脚本标记中编写JavaScript,并在随后触发的输入字段中对其进行调整。JavaScript可以访问页面URL上下文,该上下文可用于重定向单击事件。这只是几个。
如果我你真的想保护你的网站服务器端和DOM,那么如果可能的话,我会研究CSP(内容安全策略)。这是额外的工作,但如果你真的想把东西锁起来,那就值得了。
最后,您询问的<%= =>
用于显示来自ASP.NET的信息。
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 如何防止在使用.val()时引入XSS漏洞
- 如何使用Passport保护路由终结点
- 如何保护节点webkit应用程序上的字体
- 我可以在Nodewebkit中保护javascript以外的资源吗
- Javascript:'受保护'范围界定
- 通过网站禁用屏幕保护程序/睡眠模式
- XSS通过地址栏注入
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- 如何照顾CSRF&单页应用程序中不使用cookie的XSS攻击
- JS应用程序中基于DOM的XSS保护
- json_encode是否具有足够的XSS保护
- 如何保护我的 ajax 免受 XSS 漏洞 (NODE.JS) 的侵害
- 我可以在CF11中获得强大的XSS保护吗?我可以在不接触每个查询或输入的情况下将其应用于整个网站
- CakePHP 1.3:保护表单免受XSS攻击
- Rails中escape_javascript()输出中的XSS保护
- 如何保护Angular 2的SPA免受XSS攻击?
- 如何保护应用程序免受第三方js库中存在的XSS向量的侵害
- iframe-xss保护不同的域
- Smiley解析器和xss注入保护