【发布时间】:2013-08-06 07:59:06
【问题描述】:
我有一种情况,我不确定我得到的输入是否是 HTML 编码的。我该如何处理?我也有可用的 jQuery。
function someFunction(userInput){
$someJqueryElement.text(userInput);
}
// userInput "<script>" returns "<script>", which is fine
// userInput "<script>" returns &lt;script&gt;", which is bad
我可以避免转义 & 符号 (&),但这样做有什么风险?非常感谢任何帮助!
重要提示:此用户输入不在我的控制范围内。它从外部服务返回,有人可能篡改它并避免该服务本身提供的 html 转义。
【问题讨论】:
-
你真的需要避免这些情况。为什么不确定?
-
输入已经编码为什么重要?如果用户输入文字
&lt;script&gt;,那么这就是应该显示的内容。对其进行编码不会改变其呈现方式。 -
我有一种情况,我不确定我得到的输入是否是 HTML 编码的——这很糟糕。
-
@Justus 如果你把它放在你原来的帖子里,你现在就不会有 4 个无用的 cmets 了;)
-
如果您无法控制外部服务,则始终对所有内容进行 HTML 编码。如果结果是双重编码的,请直接向外部服务投诉。真的,情况听起来像是一场无法取胜的烂摊子。
标签: javascript jquery html encoding decoding