【发布时间】:2011-02-04 14:20:06
【问题描述】:
我有以下脚本,它对它接收到的一些值进行编码,但它似乎没有对双引号进行编码。
如何在发布前正确编码完整值?
function htmlEncode(value){
return $('<div/>').text(value).html();
}
上面的脚本给了我这个:
<p>Test&nbsp; <span style="color: #ffffff"><strong><span style="background-color: #ff0000">1+1+1=3</span></strong></span></p>
我需要它给我这个:
<p>Test&nbsp; <span style="color: #ffffff"><strong><span style="background-color: #ff0000">1+1+1=3</span></strong></span></p>
【问题讨论】:
-
看起来您正试图让客户端在将某些文本 HTML 提交到服务器之前使其安全。不要那样做。使内容 HTML 在离开系统时安全,而不是在进入系统时(尤其是在客户端上,因为它可以被篡改)
-
为什么要在客户端做JS?
-
你为什么要它给你
&quot;呢?除非您打算将数据插入到属性值中(您使用字符串而不是使用 DOM 或其他合理的 API 将数据混合在一起),否则您只使用 6 个字节,而 1 就可以了,并且更难阅读。跨度> -
我尝试发送服务器 html,但它不喜欢它:stackoverflow.com/questions/4897441/…
-
你得到了不好的建议。你应该关闭过度敏感的过滤器,这样你就可以得到你想要接收的数据(然后小心处理它以保护自己免受 XSS 攻击)。
标签: html jquery post html-encode