所以我正在使用 jQuery UI 库打开新的对话框窗口,当新的对话框窗口打开时我传递了一些这样的参数
<a href="http://www.mysite.com/custompage.html?width=100&height=200¶m1=abc¶m2=http://www.anothersite.com¶m3=custom3">open modal</a>
该网站运行良好,完全没有问题,我的 custompage.html 只是选取了那些传递的值并在页面上使用它们,如下所示:
var a = customfunctionget(param1); var b = customfunctionget(param2)....
我刚刚收到一份报告,我们很容易受到跨站点脚本攻击,将任何参数替换为如下内容:
><script>alert(123)</script><param
我理解正确应该发生什么但是在我尝试注入(inject)脚本的任何浏览器上永远不会显示警报因此“脚本/注入(inject)”没有被处理,custompage.html 停止工作因为我们需要正确输入值,但在这方面我无能为力。
这里有我想念的神奇药丸吗?我发现的大多数 XSS 信息都做同样的事情,尝试通过标签注入(inject)警报,但如果参数格式不正确,我会拒绝显示任何内容,我不知道还能做什么。
欢迎任何建议和教程。
最佳答案
可以对所有 <
进行编码的最简单的事情之一, >
, 和 &
带有 <
的字符, >
, 和 &
, 分别。每当浏览器看到 <something>
它认为它是一个 dom 元素。如果您对这些字符进行编码,浏览器将实际显示它们。这将挫败试图执行 <script>badstuff</script>
的人在您的网站上。
请注意,人们将无法执行添加 <b>
之类的操作如果您这样做,请给事物添加标签。
上述建议只是第一步,但绝不是详尽无遗的。
我刚刚找到这个,它看起来像一个 good guide .
关于javascript - xss javascript 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9004946/