前端面试的常见问题(1):Web安全的XSS攻击和CSRF攻击

XSS攻击(跨站脚本攻击)

XSS 的全称是 Cross Site Scripting 也就是跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。
Xss会导致挂马,盗取用户cookie,爆发web2.0蠕虫,蠕虫的Ddos攻击。
Xss攻击的类型主要分为反射型,存储型,dom-based型。
反射型:通过reflect植入script脚本,一般出现在用户聊天和邮件。
存储型:该攻击会被存储到数据库,可以存储到存储用户评论的数据库,导致植入了非法留言。
Dom-based:通过eval(location.hash.substr(1))设置,通过在url设置脚本,可以获取cookie。

被攻击的主要原因:对于url提交的参数,过滤不够。

防御XSS攻击的方法:

1.对于输入的url参数过滤,对于普通的双引号(" ")和大于小于号( < >)进行转义,对于script,style,iframe节点进行一个黑名单的过滤,对于一些用户只能输入6-14个字符的内容进行白名单设置。

2.对输出进行编码,cookie设置http-only(js脚本不能读取到cookie)。

3.插件,可以使用 https://cdnjs.com/ 的插件dompurity,可以净化用户插入的恶意脚本,在实际中用到。

CSRF攻击(跨站请求伪造)

CSRF攻击原理
  1. 用户先登录网站1
  2. 网站1确认登陆者的身份(给客户端cookie)
  3. 网站2页面向A网站发起请求(此时因步骤2,带上A网站身份)
Csrf防御的几种方法:

(1)尽量使用post
(2)使用验证码
(3)验证referer,可以在请求头部中,设置referer头部信息,可以在一些被攻击的接口继续设置头部,能够检验到相同头部则通过,但是也容易在传输过程被串改。
(4)token
Csrf之所以成功,因为黑客可以完全伪造用户的请求,利用用户的cookie来跳过安全检测这块。
解决方法:因此我们可以让黑客获取不了这个cookie,意思就是不放在cookie,而是把form表单头部信息随机添加token(或者header头部在添加meta设置name为csrf-token,并且content为token随机数),这个token存储在服务器中,在请求发来时,进行拦截,并且对其检验,不通过则不给登录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值