安全
2020-06-05 14:54:55 0 举报
AI智能生成
前端面试
作者其他创作
大纲/内容
https://github.com/woai3c/Front-end-basic-knowledge/blob/master/%E5%89%8D%E7%AB%AF%E5%AE%89%E5%85%A8.md
https://blog.poetries.top/FE-Interview-Questions/advance/#%E5%9B%9B%E3%80%81%E5%AE%89%E5%85%A8
XSS
<font color="#c41230">代码注入</font>
如何攻击
<!-- http://www.domain.com?name=<script>alert(1)</script> --><br><div>{{name}}</div> <br><br>上述 URL 输入可能会将 HTML 改为 <div><script>alert(1)</script></div> ,这样页面中就凭空多了一段可执行脚本。<br>这种攻击类型是反射型攻击,也可以说是 DOM-based 攻击<br>
如何防御
<font color="#c41230">转义</font>输入输出的内容,对于引号,尖括号,斜杠进行转义
对于显示富文本来说,不能通过上面的办法来转义所有字符,因为这样会把需要的格式也过滤掉。<br>这种情况通常采用<font color="#c41230">白名单过滤</font>的办法,当然也可以通过黑名单过滤,但是考虑到需要过滤的标签和标签属性实在太多,更加推荐使用白名单的方式
CSRF
CSRF 就是利<font color="#c41230">用用户的登录态发起恶意请求</font>
如何防御
<ul><li>Get 请求不对数据进行修改</li><li>不让第三方网站访问到用户 Cookie</li><li>阻止第三方网站请求接口</li><li>请求时附带验证信息,比如验证码或者 token</li></ul>
CSRF攻击原理
1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;<br><br>2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;<br><br>3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;<br><br>4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;<br><br>5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
0 条评论
下一页