在同步标记模式,我总是看到在一个隐藏字段或URL的CSRF令牌。将它附加到ajax post请求的末尾并让服务器决定是否需要使用它是否安全?如果这是为什么人们不这样做?CSRF同步令牌
Q
CSRF同步令牌
1
A
回答
0
简短的回答是,它并没有多么您在同步标记模式发送令牌,只要它是不会自动发送浏览器请求是否被另一个原点(即制造。它不是在一个cookie )。因此,将它附加到ajax post请求的末尾是很好的(虽然我不太清楚你的意思:))。
在谈到没有Ajax调用传统的表单应用程序,一个隐藏的表单字段是最便捷的方式。您只需将标记放置在每个表单的隐藏字段中,并且客户端上没有任何其他操作可以轻松完成。
阿贾克斯改变了风景,AJAX调用不会自动发送令牌,你要自动照顾它。例如,对于jQuery,您可以使用$.ajaxSetup
中的beforeSend
钩子自动将令牌添加到请求。当请求内容类型为x-www-form-urlencoded
时,您可以将其添加为另一个表单变量,当它是一个带有application/json
的json请求时,可以将其添加为json值。这将是安全的,但我可以看到两个问题。
之一是,令牌是一种“元数据”的要求,你的业务逻辑和业务数据的不部分。它也是跨数据结构的一个交叉问题,并不针对查询。所以最好不要使用数据结构。
另一个问题是,在加入beforeSend
令牌到已经请求池莉构建数据是乏味的。您必须深入研究数据结构,找到/创建令牌的变量等。
将它作为标记发送会更容易,这是人们在将标记添加到ajax请求时主要执行的操作。添加像X-CSRF-Token
或类似的自定义请求标头非常常见,然后服务器端可以从那里验证令牌。
相关问题
- 1. httplib - CSRF令牌
- 2. 笨,CSRF令牌
- 3. csrf令牌dajaxice
- 4. csrf令牌使用
- 5. CSRF令牌生成
- 6. Laravel behat CSRF令牌
- 7. 避免CSRF令牌
- 8. 了解CSRF令牌
- 9. csrf令牌跟进
- 10. Flask-Security CSRF令牌
- 11. Django的CSRF令牌
- 12. CSRF令牌验证
- 13. 变化CSRF令牌
- 14. CSRF 403禁止 - 无效的CSRF令牌
- 15. Struts同步器令牌
- 16. CalDav同步令牌失效
- 17. 传递一个CSRF令牌
- 18. Symfony2 CSRF令牌无效
- 19. 为window.location.href添加CSRF令牌
- 20. Braintree CSRF令牌丢失
- 21. laravel CSRF令牌与枝条
- 22. 的CSRF令牌无效
- 23. csrf令牌,安全问题?
- 24. 如何验证CSRF令牌?
- 25. Angular 2 Spring Security CSRF令牌
- 26. CSRF令牌春季安全
- 27. Cookie中的CSRF令牌
- 28. 不记名令牌和CSRF
- 29. Csrf令牌缩放问题
- 30. CSRF令牌使用SPA
非常好的解释!我有一个非传统的方式来在PHP中完成它。这不是常识,因为它是我为我的应用程序专门设计的。我只是想知道是否有任何安全问题,我没有太多的知识来纠正应用程序的安全问题,以及哪些是明显或不明显的缺陷。 –