【发布时间】:2011-08-29 15:42:32
【问题描述】:
我遇到了 XSS 问题。具体来说,我有一个单独的注入 JS 警报,表明我的输入存在漏洞。我对 XSS 进行了研究并找到了示例,但由于某种原因我无法让它们工作。
我能否获得 XSS 示例,我可以将其放入我的输入中,当我将其输出给用户时,我会看到某种变化,例如警报,知道它是易受攻击的吗?
我正在使用 PHP,我将实现 htmlspecialchars(),但我首先尝试重现这些漏洞。
谢谢!
【问题讨论】:
-
XSS、SQL注入等代码注入漏洞,往往是由于使用不当或缺少数据转义造成的。在 PHP 中,您必须在您输出到不打算作为标记的页面的所有内容上使用
htmlspecialchars()。为了节省一些输入,您可以使用包装器function h($s) { return htmlspecialchars(s); }并在任何地方使用h()。 -
在实施
htmlspecialchars()(或htmlentities())之前测试XSS漏洞有什么意义? -
另外,请始终考虑您所处的“代码级别”:例如:将用户生成的数据写入 HTML 评论时,您实际上不必
htmlspecialchars()它,但您必须记得从该数据中删除任何出现的-->,否则您可能存在 XSS 漏洞。 -
@Mike 好点,不过,我很好奇,因为我已经用其他测试实现了 striptags() 并且这种情况仍在发生。更不用说如果我在实现 htmlspecialchars() 之前不重现漏洞,那么我就不会“感觉”它会起作用。主要是为了好奇和学习。 :D
-
@Tomalak 感谢您的建议!你知道使用 striptags() 和 htmlspecialchars() 有什么用吗? (我应该为此提出一个新问题吗?)谢谢!!!
标签: php javascript security xss