2011-06-15 47 views
0

我有一个Web表单,用户使用它发布到我的网站上。我想使用相同的Django视图来处理iPhone发出的请求。由于我在Django中设置了CSRF中间件,iPhone应用程序无法发布。我读了几篇文章,他们提到要让csrf免除特定的视图。这是标准解决方案吗?这是否意味着所有允许用户通过iphone发布的网站都容易受到csrf攻击?CSRF豁免iPhone发布到Django站点

回答

2

机器(例如iOS应用)可以发布的任何表单都容易受到CSRF的影响。

没有办法绕过它。如果你可以在Objective-C中编写代码,其他人可以用JS编写代码。

解决此问题的“标准”方法是为iPhone创建一个单独的API以供使用。用户填写表格并发送。 iPhone直接与专用API对话并完全避开该表格。

为了确保从未经授权的访问iPhone的API,你有两个主要选择:

1)发送的API请求HTTPS和密码保护他们

2)嵌入SSL证书在您的应用程序,做一个SSL握手,在设备和服务器之间进行双向认证。