【问题标题】:CSRF exempt for iphone Posting to Django siteCSRF 豁免 iphone 发布到 Django 网站
【发布时间】:2011-06-15 16:43:27
【问题描述】:
我有一个供用户在我的网站上发布的网络表单。我想使用相同的 django 视图来处理 iPhone 发出的帖子请求。由于我在 Django 中设置了 CSRF 中间件,因此 iPhone 应用程序无法发布。我读了一些帖子,他们提到让 csrf 豁免特定视图。这是标准解决方案吗?这是否意味着所有允许用户通过 iphone 发帖的网站都容易受到 csrf 攻击?
【问题讨论】:
标签:
iphone
objective-c
django
【解决方案1】:
任何可以由机器发布的表单(例如 iOS 应用程序)都容易受到 CSRF 的影响。
没有办法解决它。如果你可以在 Objective-C 中编写代码,其他人也可以在 JS 中编写代码。
解决这个问题的“标准”方法是创建一个单独的 API 供 iPhone 使用。用户填写表格并发送。 iPhone 直接与专用 API 对话并完全绕过表单。
要保护 iPhone API 免受未经授权的访问,您有两个主要选择:
1) 通过 HTTPS 发送 API 请求并使用密码保护它们
2) 将 SSL 证书嵌入到您的 APP 中,并在设备和服务器之间使用双向身份验证进行 SSL 握手。