如果把评论提交的‘<’,‘"’,‘>’,‘&’都转码为&lt;&gt;%22&;&amp;之类的,是不是就可以防止 xxs。

2023-09-29 16:17:39 +08:00
 huahsiung
博客的评论,如果过滤关键词 script,onerror 等等可能会误判。
‘<’,‘"’,‘>’,‘&’转码为
&lt;&gt;%22;&amp;

感觉转码这四个,应该就稳了。
2434 次点击
所在节点    程序员
8 条回复
vigossliao
2023-09-29 16:32:15 +08:00
用现成库应该省事多了

https://github.com/leizongmin/js-xss
jsq2627
2023-09-29 16:38:43 +08:00
agagega
2023-09-29 17:14:39 +08:00
如果只需要展示纯文本的话,用 innerText 不就行了?
hgc81538
2023-09-29 19:32:23 +08:00
應該轉碼&<>"'去&amp;&lt;&gt;&quot;&#039;就穩了
ysc3839
2023-09-29 19:34:56 +08:00
可能不止这几个字符,建议直接使用现成的 html 转义库
rabbbit
2023-09-29 19:41:09 +08:00
xiangyuecn
2023-09-29 22:13:51 +08:00
onclick='alert(1)'
xiangyuecn
2023-09-29 22:16:15 +08:00
不用白名单,直接全部 ASCII 字符除了换行字母数字全部用 &#123; 转义完事

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/978163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX