0

我正在构建一个应用程序来检索任何类型的用户输入,即使用户输入了 xss 注入代码。除此之外,我提供了一个管理视图来显示用户放置的全部内容,或者他们放置了 html 代码、bb 代码、xss、javascript 等(类似用于分析目的)。

我认为 htmlentities($data, ENT_QUOTES) 就足够了,但是在阅读https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet之后,它让我更加困惑。

我不想删除任何标签或脚本,我只想在带有转义的 html 中显示它。如果我把它放在 textarea 标签上会保存吗?我的意思是如果数据包含 xss 如果在文本中它不会执行?

<textarea name="comment" rows="30" cols="100"><?php echo htmlentities($data, ENT_QUOTES); ?></textarea>

或者有任何安全的方法可以在浏览器上显示 xss,但它自己没有执行 xss。

对不起,我的英语不好。

谢谢

4

1 回答 1

1

如果您的管理员打开特制的用户输入,那么您发布的代码很容易受到 XSS 攻击,攻击者可以获得该页面的管理权限。将用户代码放在 textarea 或任何其他标签中并不能防止 XSS 攻击。黑客所要做的就是在他的输入中关闭 textarea 标签,然后做任何他想做的事。

我很高兴你找到了 owasp cheet sheet :) 你应该遵循它非常有用。请记住转义放置在页面上的所有用户输入。

我会推荐使用htmlspecialchars,然后使用:tags present here进行一些测试。如果您看不到 JS 警报,那么您的应用程序在一定程度上受到了 xss 攻击的保护。

于 2012-11-28T07:15:43.943 回答