常见前端的安全问题

一般前端常见的网络攻击方式有两种:

一:CSRF(跨站请求伪造)

CSRF攻击的全称是跨站请求伪造( cross site request forgery),是一种对网站的恶意利用,攻击者盗用了你的身份,以你的名义给第三方网站发送恶意的请求。它可以做到的事情有利用你的身份发邮件、发短信、进行交易转账、盗取你的账号等,可能会导致,个人隐私泄漏以及财产安全。
CSRF的原理:
在这里插入图片描述
如上图所示,完成一次CSRF攻击的受害者必须经2个步骤如下:
1: 用户登陆的网站A,并生成cookie
2: 用户在没有登出网站A的情况下去访问网站B。
会被攻击的场景:
在网站A,进行一些表单提交的时候,容易收到攻击;

防御措施
  1. http请求的时候参数增加token验证
    因为token是随机产生的,在请求中放入攻击者不能伪造的信息,并且该信息不存在cookie中,在http请求的时候服务端验证token,如果没有token或token内容不正确,就认为是CSRF攻击拒绝此次请求。
  2. 通过Referer识别
    根据http协议,在HTTP头中有一个字段叫Referer,记录了http请求的来源地址,如果网站受到CSRF攻击,用regerer来进行验证,就可知道是否只本网站发送的请求。
    获取http的Referer:
    var referer = request.getHeader(“Referer”)
二:XSS (跨域脚本攻击)

跨站脚本攻击(xss)是web攻击中最常见的攻击方法,能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。xss可以做到如向网站插入恶意小广告,劫持用户会话,SQL注入攻击服务器和数据库等。
应用场景,在评论功能中是最容易受到XSS攻击的。

攻击方式

1.XSS反射型攻击
发从请求时,XSS攻击的代码脚本会出现在URL中,提交到服务器,服务器端解析后响应,XSS代码(js,html,css)随响应内容一起传回给浏览器,最后浏览器就会执行XSS代码。
比如 可在url中插入dom,网站就会出现XSS代码结构,用户以为是网站内容,插入css 可改变网站样式,插入JS代码获取用户信息等,嵌入ifreame ,可插入小广告等
2. XSS存储型攻击
存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。

防御措施
  1. 编码
    对用户输入的数据进行HTML Entity编码
  2. 过滤
    移除用户上传的DOM属性,如 onClick 、onerror等
    移除用户上传的Style节点、Script节点、Iframe节点等
  3. 校正
    避免直接对HTML Entity解码
    使用DOM Parse转换,校正不配对的DOM标签
发布了23 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/diwang_718/article/details/104776524