【发布时间】:2015-04-28 23:05:17
【问题描述】:
(抱歉,如果这一切听起来微不足道,我是网络编程和 django 的初学者)
我正在使用 django 为科学测量数据库编写 Web 前端。
所需功能的一部分是让用户能够从网页向数据库提交新的测量结果。在 django 对 web 表单的出色支持的帮助下,我有了这个功能。数据通过受 CSRF 令牌保护的 POST 请求发送。
我现在正在开发相同的功能,而不是通过 Web 表单,而是通过 API 访问,这样用户就可以通过 Python 脚本批量提交新的测量值,而不必每次都手动填写 Web 表单。
问题在于,由于没有要填写的表单,因此也没有 CSRF 令牌,并且 django 默认情况下不允许在没有它的情况下发送 POST 请求。
目前,我已通过使用@csrf_exempt 装饰 API 视图来解决此问题。但我并不真正了解这样做的安全隐患。
这可能是安全风险吗?如果有,怎么做?
【问题讨论】:
标签: django django-csrf csrf-protection