在前端,是否可以通过从用户内容中删除<
来捕获所有XSS攻击?这似乎是禁用恶意代码的一种简单方法,目前我没有用例需要保留<
。在所有情况下都能正常工作吗?
我显示用户内容的方式始终是内部html,例如
<div>{USER CONTENT}</div>
答案 0 :(得分:1)
取决于您使用用户输入的位置。
如果您在a href=
中使用它,那就好了:不!
<a href="{{linkFromUser}}">
然后可能是javascript:alert('oh no');
,如果在页面上下文中按下链接,浏览器将执行 。
答案 1 :(得分:0)
为明确起见,答案是在接受的答案的评论中。
Lux 友善地链接了document,确认类似的实体编码<
方法足以防止脚本在内部html内容中运行(这几乎回答了我的问题) 。但是,&
也需要编码,UTF7 XSS
字符集应避免使用(显然)。