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