django csrf_protect及浏览器同源策略

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

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

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

     http://www.javashuo.com/article/p-xcptltgl-cn.html跨域

 

2.为何要进行csrf的控制?浏览器

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

为何提交表单(post)不受同源政策的限制?服务器

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

参考:http://www.javashuo.com/article/p-tepdknfd-cx.html网站

 

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

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

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

(2) DOM 没法得到。

(3) AJAX 请求不能发送

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

相关文章
相关标签/搜索