作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试阻止我的网站上出现跨站点脚本。
最初我以为过滤<script...>
和alert(...)
应该完成这项工作。
所以我使用了正则表达式:^((?!(<script.*>|alert\(.*\))) [\s\S])*$
.
但后来我读到了 this web page 上的一些规则,我意识到我还有很多事情要做。
所以我有几个问题:
首先(也在标题中提到),关于该网页的以下两条规则:
<div ...NEVER PUT UNTRUSTED DATA HERE...=test /> in an attribute name
<NEVER PUT UNTRUSTED DATA HERE... href="/test" /> in a tag name
我接受吗test
字符串原样,否则它到底代表什么?
第二个(更一般而言),this web page表示基于 XSS 的攻击种类几乎是无限的。所以我想知道您是否认为我正在一场失败的战斗中,尝试仅使用正则表达式来解决这个问题。
谢谢。
最佳答案
总体思想是将代码和数据分开。当您将不受信任的数据注入(inject)到作为代码处理的位置时,您就会遇到潜在的麻烦。 HTML 属性就是这样的情况,因为用户可以注入(inject)任何内容:
<img <?php echo $input; ?> src="...">
<img onload="downloadAndExecuteMaliciousCode()" src="...">
<img ><script src="http://example.com/maliciousCode"></script><img src="...">
关于javascript - 澄清 XSS(跨站脚本)预防备忘单中的规则之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44546996/
我有一个站点是在 asp.net 中完成的。另一个较新的站点是在 asp.net MVC、LINQ 和 Razor 中完成的。 当我访问旧站点 oldsite/default?userid=243 时
我想提供一段 Javascript 代码,它可以在包含它的任何网站上运行,但它总是需要在托管 Javascript 的服务器上获取更多数据(甚至修改数据)。我知道出于显而易见的原因存在安全限制。 考虑
我是一名优秀的程序员,十分优秀!