我已经使用简单的js fiddle http://jsfiddle.net/um788f6q/设置了我的问题
<input type="text" id="yo">
$("#yo").val('hell'o')
基本上,我想知道是否有一种方法可以显示撇号而不是编码的字符串,我在服务器上对值进行了这样的编码,以防止xss攻击,所以解码不是一个有效的选项。
谢谢
我已经使用简单的js fiddle http://jsfiddle.net/um788f6q/设置了我的问题
<input type="text" id="yo">
$("#yo").val('hell'o')
基本上,我想知道是否有一种方法可以显示撇号而不是编码的字符串,我在服务器上对值进行了这样的编码,以防止xss攻击,所以解码不是一个有效的选项。
谢谢
5条答案
按热度按时间moiiocjp1#
基本上,我想知道是否有一种方法可以显示撇号而不是编码字符串。
没有理智。
value属性处理文本,而不是HTML。
作为一个可怕的黑客,您可以通过解析HTML然后读取生成的文本节点来将其转换为文本。
......但不要这样做。而是解决真正的问题。
我在服务器上对这些值进行了如下编码,以防止xss攻击
别这样。
您要将数据插入JavaScript,而不是HTML。
当你不处理HTML时,不要为HTML辩护,这会让你很容易受到攻击。
对要插入JavaScript的数据进行编码的适当方法是使用JSON编码器(如果要将JSON放入HTML属性值中,则使用实体对生成的JSON进行编码;如果要将其放入
<script>
元素中,则对任何/
字符进行转义)。kzmpq1sx2#
试试这个
Fiddle Demo
6mw9ycah3#
不是用
.val()
/.text()
或.html()
检索字段或元素的值,而是要对其进行编码。你可以使用
serialize()
,并发送它在一个数据ajaxer很容易...并检索带值字段名(任意几个字符)或整个html表单;)
示例:
返回者:好音乐🎶
mnemlml84#
您可以替换$#39;by '并将其替换回服务器端。
k5ifujac5#
这个应该对你有帮助
JS Fiddle