Ruby on rails 跨源资源共享的安全性

Ruby on rails 跨源资源共享的安全性,ruby-on-rails,security,cors,Ruby On Rails,Security,Cors,我有两个ruby on rails应用程序,分别位于两个不同的域上(例如www.exampleA.com和www.exampleB.com) exampleA.com向exampleB.com发送http POST请求 在exampleB.com我正在检查request.env['HTTP_ORIGIN']以确保请求来自exampleB.com。如果为真,我将通过设置响应头来允许HTTP post请求来响应 我的问题是,我是否可以使用request.env['HTTP_ORIGIN']作为验证请

我有两个ruby on rails应用程序,分别位于两个不同的域上(例如
www.exampleA.com
www.exampleB.com

exampleA.com
exampleB.com
发送http POST请求

exampleB.com
我正在检查
request.env['HTTP_ORIGIN']
以确保请求来自
exampleB.com
。如果为真,我将通过设置响应头来允许HTTP post请求来响应

我的问题是,我是否可以使用
request.env['HTTP_ORIGIN']
作为验证请求者身份的唯一检查


来自
www.exampleC.com
的人是否可能伪造其HTTP\U源代码,使其看起来像
www.exampleA.com
并发布恶意数据?如果是这样,验证请求者身份的最佳方法是什么?

对不起,但伪造大多数客户端提供的数据(包括源代码)非常容易,因此不应用于任何类型安全性。

是其中之一。因此,您可以放心地信任XHR请求的原始信息


<>但是攻击者仍然可以直接发送带有恶意数据的伪造请求。因此,仍然需要验证传入的请求。

永远不要信任来自客户端的任何东西。客户端可以伪造他们发送给服务器的任何东西。“安全”是相对的。考虑是否有人能够发送他们喜欢的任何数据。(例如来自恶意本机应用程序、Flash或Java中的vuln等),如果这会使您面临安全风险或他们会在您的行为上执行操作,但这无论如何都是客户端的,OP正在启用客户端机制(CORS)因此,如果客户伪造了一个推荐人,他们只会减少自己的保护。@SilverlightFox-from op“来自www.exampleC.com的人是否可能伪造他们的HTTP_源代码,使其看起来像www.exampleA.com并发布恶意数据?”是的,他们可以直接提出请求,但不能在客户端同时包含受害者的身份验证cookie。我没有做任何假设。OP中哪里写着“身份验证cookie”,那么?我已经和你讨论完了。如果你需要进一步的澄清,就把它作为一个问题提出来,这样就可以让比我现在关心得多的人来处理了。。。