|
|
1
5
从不将任何数据位输出到未通过的HTML流
作为一个程序员 你的 不过,这是我们的工作。 你可以定义
如果
关键是:有代码,有数据。如果你把二者混为一谈,坏事就接踵而至。 对于HTML,代码是元素、属性名、实体、注释。数据就是一切。数据 必须 避免被误认为是代码。
对于URL,代码是查询字符串的方案、主机名、路径和机制。(
HTML中嵌入的URL 必须 双重转义(通过URL转义 和 HTML转义)以确保正确地分离代码和数据。
现代浏览器能够将异常破碎和错误的标记解析成有用的东西。不过,不应该强调这种能力。发生了什么事情(比如在
如果确保不属于a)和b)类,那么XSS很容易避免。 |
|
|
2
3
我想 Google-caja 也许是个解决办法。编写了Java Web应用程序的污点分析器,自动检测和防范XSS。但不适用于PHP。我认为学习使用caja对Web开发人员来说并不坏。 |
|
|
3
1
不,没有。风险取决于您对数据的处理方式,您不能编写使数据对所有内容都安全的内容(除非您想放弃大部分数据)。 |
|
|
4
1
不。 离开PHP的数据的表示形式必须根据它的去向进行转换/编码。因此,只能在离开PHP的地方转换/编码。 C. |
|
|
5
0
您可以参考owasp以了解XSS攻击的更多信息: https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet 为了避免JS攻击,您可以尝试开放源码卓越提供的这个项目: https://www.opensource-excellence.com/shop/ose-security-suite.html 我的网站以前有过JS攻击,这个工具帮助我每天阻止所有攻击。我认为它可以帮助你们避免这个问题。 此外,您可以在PHP脚本中添加一个过滤器来过滤所有JS攻击,这里有一个模式可以完成以下工作: 如果(preg_match('/(?):[“”]脚本\s*()(?\ \ \ $?\ S*(\S*[\W”])(?// [\WS+] /(?):=\s*/\w+/\s*.)(?(?):此窗口顶部父帧自身内容)[\s*[(,,] 的S [\W\$])?:,\s*新\s+\w+\s*[,;)/ms',strToLower($post['variablename'])) { 过滤器变量($post['variablename']); } |
|
6
-1
回答你的版本:除了
这个词没有恶意
|
|
|
7
-3
供干净的用户数据使用
|