前端安全

CSRF(Cross Site Request Forgery)跨站请求伪造

攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

CSRF 利用的是网站对用户网页浏览器的信任。

一个典型的CSRF攻击有着如下的流程:

  • 受害者登录a.com,并保留了登录凭证(Cookie)

  • 攻击者引诱受害者访问了b.com。

  • b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带a.com的Cookie。

  • a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。

  • a.com以受害者的名义执行了act=xx。

  • 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作。

常见的攻击类型

  • GET类型的CSRF
  • POST类型的CSRF

防护措施

CSRF(通常)发生在第三方域名,不能获取到Cookie等信息,只是使用。

利用head里的Referer头,防盗链

增加随机码

CORS 跨域资源共享

XSS:(Cross Site Scripting)跨站脚本攻击

指攻击者在网站上注入恶意的客户端代码,通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页时,对用户浏览器进行控制或者获取用户隐私数据的一种攻击方式。

XSS 利用的是用户对指定网站的信任

反射型

存储型

不论是 Cookie 还是 token 都无法避免跨站脚本攻击(Cross Site Scripting)XSS。

攻击者插入一段可执行的 JavaScripts 脚本,该脚本会读出用户浏览器的 cookies 并将它传输给攻击者,攻击者得到用户的 Cookies 后,即可冒充用户

采用HTTP-Only Cookies

XSS攻击代码过滤(js下的js-xss,JAVA下的XSS HTMLFilter)

Replay Attacks

重放攻击是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程。比如在浏览器端通过用户名/密码验证获得签名的Token被木马窃取。即使用户登出了系统,黑客还是可以利用窃取的Token模拟正常请求,而服务器端对此完全不知道。

黑客拿到了令牌怎么办,要是有中间人劫持,拦截了怎么办”之类的安全问题,并不是JWT的锅,而是传输协议的锅。HTTP协议 明文传输信息而造成的安全问题

采用了HTTPS协议通信,无法获取请求的任何数据

cookie被禁用

给用户一个提示:你的cookie已经被禁用了,请启用cookie

Base64

加密算法

加密技术是对信息进行编码和解码的技术。编码是把可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码。加密技术的要点是加密算法,加密算法可以分为三类:

对称加密,如AES

将明文分成N个组,然后使用密钥对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。

优势:算法公开、计算量小、加密速度快、加密效率高

缺陷:双方都使用同样密钥,安全性得不到保证

非对称加密,如RSA

同时生成两把密钥:私钥和公钥,私钥隐秘保存,公钥可以下发给信任客户端。

私钥加密,持有私钥、公钥才可以解密;公钥加密,持有私钥才可以解密;

优点:安全,难以破解

缺点:算法比较耗时

不可逆加密 MD5,SHA

加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,无法根据密文推算出明文。

参考

前端安全系列之二:如何防止CSRF攻击?

浅说 XSS 和 CSRF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值