【发布时间】:2011-06-17 15:29:23
【问题描述】:
我知道这可能很愚蠢,但是当我在表单中显示它时如何逃避用户输入。我不是指任何输出,尤其是表单输入。例如,如果我有输入标签并将用户文本放入值中。
<input type="text" value="'test' "test" <script>alert('hacked');</script>" />
当我离开它时,它会正确显示
'test' "test" <script>alert('hacked');</script>
没有发生 XSS,但我不觉得安全,因为其他代码最终可能会崩溃。在将数据放入表单时,是否有类似浏览器内置方法来防止 XSS 或我遗漏了什么?
编辑:我没有说出整个故事。对于那个很抱歉。当我使用 htmlentities 或 htmlspecialchars 时,我得到了我不想要的转义数据。我在输入中看到了这个,这不是输入的内容:(
'test' "test" <script>alert('hacked');</script>
我想防止 XSS 并在不更改内容的同时显示内容。这种情况下可以吗
【问题讨论】:
-
您绝对不想在最终用户完全控制的客户端(网络浏览器)中处理这个问题。您应该在服务器端完全处理这个问题。至于如何做取决于您在问题中没有提到的所使用的编程语言。请更新您的问题。
-
@BalusC 如果之前的问题有任何迹象表明我的猜测是 PHP
-
我现在如何转义 html,问题是当它在输入值中时,输出看起来不像输入。我想阻止 XSS,但最终用户能够看到并最终编辑输入的相同文本。
标签: php html forms escaping xss