gpt4 book ai didi

android - Rails protect_from_forgery 与移动应用程序

转载 作者:行者123 更新时间:2023-11-28 23:05:06 26 4
gpt4 key购买 nike

我正在 Rails 上构建一个应用程序,我的 application.rb 中有 protect_from_forgery。我还为移动应用程序构建了一个 RESTful API,以使用 JSON 数据进行通信。我看到一些网站声称,为了让移动应用程序与 Rails 应用程序交互,他们关闭了 JSON 请求的 protect_from_forgery

How does this solve the problem of CSRF? Can a malicious site not have JSON POST request that performs undesirable changes on behalf of the user?

因此,为了解决这个问题,我决定使用自定义 mime-type 或者可能只有移动应用程序会使用的 special key,然后有 protect_from_forgery 执行以下操作:

  1. 检查 csrf token 是否作为 hidden div 存在(对于网络应用程序为真,默认包含)。
  2. 如果不存在,请检查此特殊 key mime-type

有没有什么方法可以解决这个问题?

更新

原来是我想多了。 Rails 是“神奇的”,它以某种方式自动且适本地处理来自移动应用程序的请求,而不会引发异常。因此,基本上我们根本不需要进行任何修改。

虽然我没有完全检查 Rails 是如何实现这一点的 - 从教学角度来说,这对于某些人来说可能仍然很有趣。

最佳答案

您不必使用 ActiveResources。如果您以 xml 格式发送请求,那么它将绕过 protect_from_forgery。

curl -H "Content-Type: text/xml" -d "<support-request><from>...</from></support-request>" -X POST http://localhost:3000/support_requests.xml -i

它应该非常简单。

关于android - Rails protect_from_forgery 与移动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com