网络安全

CSRF攻击和防御

2020-03-16  本文已影响0人  solfKwolf

CSRF的全称是Cross Site Request Forgery,即跨请求伪造。CSRF对于那些开源网站、多用户网站、社交网站非常值得关注。

get攻击

Cookies是共享的。它可以在不同的页面发送带上Cookies请求,所以不安全。IE浏览器默认不允许目标网站的Cookie在这样的跨域请求中带上,除非在HTTP响应头设置了PSP,但对于非IE的浏览器没有这样的限制。

post攻击

通过javascript动态生成的form提交post请求。

嵌入的第三方资源都是可以发出跨域的get请求。

CSRF的分类

注意:HTML中能够设置src/href等链接地址的标签都可以发起一个GET请求。

<link href="" />
<img src="" />
<img lowsrc="" />
<img dynsrc="" />
<meta htt-equiv="refresh" content="0; url=" />
<iframe src="" />
<script src="" />
<bgsound src="" />
<embed src="" />
<vedio src="" />
<audio src="" />
<a herf="" />
<table background="" />
...

css样式中:

@import ""
background:url("")
...

原理跟JSONP差不多。不过是不同域名发出的跨站get请求

如何方法

  1. 判断Referer
  2. 使用Token判断,用户登录时根据用户名和密码等加密生成一个Token值,同时写入到浏览器的Cookie和Hidden中,然后根据每次的请求将Token和Cookie同时带入到服务端进行验证和判断。
上一篇 下一篇

猜你喜欢

热点阅读