我可以只接受来自域名的邮寄请求吗?

时间:2015-01-09 01:48:45

标签: ruby-on-rails ruby post domain-name

我在我的应用程序上实施付款方式,银行网站发回一个帖子请求,其中包含有关付款的信息,例如状态,付款ID ...

但是为了确保请求不是来自试图做坏事的人,我能否只接受来自银行系统的请求?我正在寻找一些东西来检查这个动作/控制器的请求只来自mybank.com并跳过其他人。

2 个答案:

答案 0 :(得分:4)

You can constrain the route:

post 'yourpath', to: 'controller#action', constraints: { protocol: 'https://', host: 'yourbank' }

答案 1 :(得分:0)

您可以尝试检查引用并禁止不匹配的请求:

if request.referer.starts_with?('https://your.bank/') # or request.env['HTTP_REFERER']
  # do stuff
else
  # render error
end

但不是:a)推荐人不安全。每个人都可以伪造它们。 b)您的银行很可能没有发送推荐人。

我会调查其他解决方案:只允许来自银行ip范围的请求,并要求银行进行密码验证。