【发布时间】:2012-10-25 21:00:58
【问题描述】:
我有 2 个 ruby on rails 应用程序位于 2 个不同的域(例如 www.exampleA.com 和 www.exampleB.com。我想在这两个应用程序之间共享资源,我正在使用 CORS:
exampleA.com 向 exampleB.com 发送 http POST 请求。
在exampleB.com,我正在检查request.env['HTTP_ORIGIN'] 以确保请求来自exampleA.com。如果为真,我会通过设置响应标头来允许 http post 请求来响应。
我的问题是我可以使用request.env['HTTP_ORIGIN'] 作为唯一检查来验证请求者的身份吗?
来自 www.exampleC.com 的人是否有可能伪造他们的 HTTP_ORIGIN 看起来像 www.exampleA.com 并发布恶意数据?如果是这样,验证请求者身份的最佳方法是什么?
【问题讨论】:
-
永远,永远不要相信来自客户的任何东西。客户端可以伪造他们发送到服务器的任何内容。
标签: ruby-on-rails security cors