我在django中没有得到关于CSRF保护的一件事。例如,我们有一些恶意网站。什么问题发送请求从本网站到csrf受保护的网址,解析页面并获得csrf值,然后发布这个值?Django中的CSRF保护
回答
REFERRER将被检查。如果REFERRER确实对应于正确的URL,那么POSTing数据无效。
Django的跨站请求伪造的主要目的在Django文档(https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-it-works)进行说明:
这可确保只有源自您的网站 的表单才能用于发回数据。
因此,它会检查几件事情 - Cookie,引荐,张贴值。而且有一些限制,你不能随意修改所有这些值。例如,您可以在AJAX调用中设置X-CSRFToken标记和POST值,但浏览器将不允许您覆盖引用标头......您可能会成功使用urllib2或类似的库执行成功的POST,但此操作不在CSRF保护范围内,因为它与您在页面上发布的内容相同。 再次 - CSRF意味着跨站点请求伪造,它是它所保护的。
例如我们有一些恶意网站。有什么问题请发送 从本站获取请求到csrf的受保护url,解析页面并获取csrf值,然后发布这个值?
如果您这样做,CSRF cookie的会话副本将不匹配,您的请求将被拒绝。
另外,应该注意的是,引用程序检查仅针对HTTPS请求完成,以防止MitM漏洞。
请参阅this django wiki entry以了解CSRF保护如何工作,以及this SO question专门讨论了MitM攻击。
什么是CSRF cookie的会话副本?如果用户已经登录了django csrf保护的站点。 – sunprophit
- 1. reactjs/redux + django CSRF保护
- 2. csrf的保护
- 3. Phoenix和CSRF的CSRF保护
- 4. Django的书过时CSRF保护
- 5. csrf保护
- 6. API CSRF保护
- 7. CSRF保护ExpressJS
- 8. Tomcat中的CSRF保护
- 9. Rest API中的CSRF保护
- 10. Tomcat中的CSRF保护7
- 11. IdentityServer4中的CSRF保护
- 12. php csrf保护库
- 13. Codeigniter AJAX CSRF保护
- 14. PEAR QuickForm2 CSRF保护
- 15. CSRF保护问题
- 16. Spark Framework CSRF保护
- 17. CSRF保护与JavaScript?
- 18. Liferay的CSRF保护与@ResourceMapping
- 19. 轨,OAuth的,和CSRF保护
- 20. 完全禁用在SVN中继Django的CSRF保护
- 21. 浏览器扩展中的CSRF保护
- 22. CSRF保护如何工作?
- 23. Angular2和Laravel CSRF保护
- 24. Angular,Expressjs和Lusca csrf保护
- 25. 不需要CSRF保护?
- 26. CSRF保护GET链接
- 27. 使用Symfony CSRF保护
- 28. Laravel路由和CSRF保护
- 29. CSRF保护和可用性
- 30. 笨CSRF保护错误:
+1。 CSRF的意思是“跨站点请求伪造”,您可以始终获得crsf令牌并将其发布为已更改的数据,但CSRF针对的是已登录的用户。# –