我正在编写一个Django RESTful API来支持iOS应用程序,每当我编写处理POST请求的方法时,我都会遇到Django的CSRF保护.
我的理解是,iOS管理的cookie不被应用程序共享,这意味着我的会话cookie是安全的,任何其他应用程序都不能使用它们.这是真的吗?如果是这样,我可以只将我的所有API函数标记为CSRF豁免吗?
我正在编写一个Django RESTful API来支持iOS应用程序,每当我编写处理POST请求的方法时,我都会遇到Django的CSRF保护.
我的理解是,iOS管理的cookie不被应用程序共享,这意味着我的会话cookie是安全的,任何其他应用程序都不能使用它们.这是真的吗?如果是这样,我可以只将我的所有API函数标记为CSRF豁免吗?
这不是CSRF保护的目的.CSRF保护是为了防止将数据直接发布到您的站点.换句话说,客户实际上必须通过批准的path投递,即查看表单页面、填写表单页面、提交数据.
API几乎排除了CSRF,因为它的全部目的通常是让allow个第三方实体访问和操作您站点上的数据(CSRF中的"跨站点").所以,是的,我认为作为一项规则,任何API视图都应该是CSRF豁免的.然而,您仍然遵循最佳实践,并通过某种形式的身份验证(如OAuth)来保护每个实际进行更改的API端点.