一、什么是CSRF?
- CSRF(Cross-site request forgery), 中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF
- 浏览器在发送请求的时候,会自动带上当前域名对应的cookie内容,发送给服务端,不管这个请求是来源A网站还是B网站亦或其它网站,只要请求的是A网站的链接,就会带上A网站的cookie。
- 浏览器的同源策略并不能阻止CSRF攻击,因为浏览器不会停止js发送请求到服务端,只是在必要的时候拦截了响应的内容。或者说浏览器收到响应之前它不知道该不该拒绝。
二、CSRF的特点
- 攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。
- CSRF攻击者不能获取到Cookie等信息,只是使用。
- CSRF(通常)发生在第三方域名。
三、解决措施
(1)方法一:在from表单中添加csrf_token
<form action="" method="post">
{# Django提供的csrf防范措施 #}
{% csrf_token %}
:
:
:
</form>
如图所示:
(2)方法二 在setting.py文件下,将 'django.middleware.csrf.CsrfViewMiddleware',注释
此文章仅供学习,写的不对的地方,希望大家多多指教!