javascript - 关于 jQuery 更改...使用 .html();

标签 javascript jquery

好吧,假设我有一个 jQuery 函数...它是一个 AJAX Post...成功后我会这样做

$("#title"+id).html(Z);

Z 是 var Z=$("#"+X+" textarea.editAnswer").val(); .

但是,如果我在文本区域中输入类似 <script>alert('Test');</script> 的内容然后按保存...它将保存它并弹出测试警报。那么...我该如何解决这个问题?

最佳答案

这是代码注入(inject),应该用 HTML 编码来避免。

或者:

  1. 从服务器返回 HTML 编码结果(在您保存后)并将其填充到您的 #title 元素或
  2. 使用 escape() Javascript 函数在客户端对其进行编码,并将结果填充到您的 #title 元素中

根据具体情况,您应该始终使用让用户更难破解的方案。我建议您使用服务器端方法,因为用户将无法覆盖您的自定义 javascript 函数并解决他们自己扭曲的议程...

关于javascript - 关于 jQuery 更改...使用 .html();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657253/

相关文章:

jquery - mvc 中对 api 操作的 ajax 请求不会执行成功事件 (asp.net webapi)

javascript - 删除类,然后隐藏元素

javascript - MVC 模式中 Ajax 中 GET/POST/PUT/DELETE 之间的区别

javascript - svg.js bbox() 在scale() 之后返回相同的值

javascript - 键盘事件如何触发兄弟按钮的点击事件? (里面的jsfiddle)

jquery - jCarousel Lite - 水平和垂直居中图像

javascript - 访问深层嵌套图像

javascript - 当您打开 Popover [bootstrap] 时,屏幕失去焦点并转到顶部

javascript - 等待用户点击而不是页面加载来启动功能

javascript - 图片上的点击事件突然不起作用