【问题标题】:Displaying XSS in the browser在浏览器中显示 XSS
【发布时间】:2012-11-15 20:38:07
【问题描述】:

我正在构建一个应用程序来检索任何类型的用户输入,即使用户输入了 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。

抱歉我的英语不好。

谢谢

【问题讨论】:

    标签: php xss security


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答,我尝试在该链接上使用 xss 标记/代码,但没有看到任何 js 警报。这是否意味着'htmlspecialchars'就足够了?但是owasp告诉htmlspecialchars不够好。
    • 您可能会看到 owasp 列出了 6 个特殊字符,其中 5 个由 htmlspecialchars 处理,我认为您很好:)
    • 什么是 htmlspecialchars 不能处理的?你能在owasp上写下关于那个的链接吗?因为我阅读了很多链接,让我更加困惑。
    • 它不处理'/'但它处理''所以我认为这个'/'是一些额外的安全措施:)
    • 我应该将'/'替换为'/' ?
    猜你喜欢
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 2014-12-07
    • 2012-02-13
    • 2018-12-02
    • 2012-04-11
    相关资源
    最近更新 更多