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 &lt;
> becomes &gt;

 

当我们使用纯HTML进行开发时,如果对用户输入内容在前后端都会做任何转移,那么就会有XSS的风险。例如在录入控件中输入下面的代码(你可以打开百度首页,然后在控制台尝试 setInterval(alert, 1),当然完全能想象会是怎样的场景):

<script>setInterval(alert, 1)</script>

 

当然,注入攻击主要还是获取敏感信息,或者涉及网站安全的内容。

 

参考

JSX 防止注入攻击

Which characters need to be escaped in HTML?

WHEN ESCAPES CAN BE USEFUL

XSS攻击

 

来源

搜索《考试竞技》微信小程序

 

posted @ 2021-11-26 10:23  nachao  阅读(95)  评论(0编辑  收藏  举报