2022年前端React的100道面试题的第4题:JSX安全性
JSX 是否默认支持防止注入攻击(XSS)?
选项
A 是
B 否
答案
A
解答
根据开放网页应用安全计划(Open Web Application Security Project)公布的2010年统计数据,在Web安全威胁前10位中,XSS排名第2,仅次于代码注入(Injection)。 —— 百度百科
React DOM 在渲染所有输入内容之前,默认会进行转义,主要是针对以下字符:
& becomes &
< becomes <
> becomes >
当我们使用纯HTML进行开发时,如果对用户输入内容在前后端都会做任何转移,那么就会有XSS的风险。例如在录入控件中输入下面的代码(你可以打开百度首页,然后在控制台尝试 setInterval(alert, 1)
,当然完全能想象会是怎样的场景):
<script>setInterval(alert, 1)</script>
当然,注入攻击主要还是获取敏感信息,或者涉及网站安全的内容。
参考
来源