django csrf_protect及浏览器同源策略

1.django在检测post行为时会有诸多的限制。

为了防止跨域请求伪造安全

参考:http://www.qttc.net/201209211.html

     https://www.cnblogs.com/zhaof/p/6281482.html

2.为什么要进行csrf的控制?

浏览器遵从同源策略,杜绝了大部分的伪造请求,保证用户信息的安全,防止恶意的网站窃取数据。但浏览器同时还规定,提交表单不受同源政策的限制。

为什么提交表单(post)不受同源政策的限制?

post行为被浏览器认为是安全的,本事action请求后会进行界面跳转,post本体无法获得返回的数据。但post的行为对于服务器还是起作用了。且ajax下的post行为受同源策略控制,无法进行跨域请求。post主体无法从返回的结果中得到任何东西,他所能做的就是给服务器发送请求,以执行请求中所描述的命令,在服务器端直接改变数据的值,而非窃取服务器中的数据。所以,我们要保护的对象是那些可以直接产生数据改变的服务,而对于读取数据的服务,则不需要进行 CSRF 的保护。

参考:https://www.cnblogs.com/chenchao1990/p/5339779.html

3.什么是浏览器同源策略?有什么限制?如何绕开它?

同源指url协议、域名、端口相同,如果非同源,共有三种行为受到限制。

(1) Cookie、LocalStorage 和 IndexDB 无法读取。

(2) DOM 无法获得。

(3) AJAX 请求不能发送

参考:http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html

原文地址:https://www.cnblogs.com/Undo-self-blog/p/8981172.html