【问题标题】:Receive POST from External Form从外部表单接收 POST
【发布时间】:2010-12-16 08:48:51
【问题描述】:

我在另一个网站(使用不同的后端)上有一个表单,我希望能够将其发布到我的 Rails 应用程序(在不同的域上)。

  • 如何为外部表单生成有效的真实性令牌,以便我的 Rails 应用接受它?
  • 假设我可以回答上述问题 - 我还需要做些什么来完成这项工作吗?除了真实性令牌之外,其余部分对我来说似乎很简单......

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails forms post external


    【解决方案1】:

    您无法从 Rails 应用程序外部生成真实性令牌。 您可以做的是,disable the token protection 仅用于此操作并使用基于 before_filter 的自定义实现。

    skip_before_filter :verify_authenticity_token, :only => :my_action
    before_filter :verify_custom_authenticity_token, :only => :my_action
    
    def verify_custom_authenticity_token
      # checks whether the request comes from a trusted source
    end
    

    【讨论】:

    • 不错。感谢您的澄清!
    【解决方案2】:

    您可以通过添加如下过滤器来删除检查:

    skip_before_filter :verify_authenticity_token, :only => :action_name
    

    【讨论】:

    • 这不会向任何发布到我的 Rails 应用程序的人开放吗?这不是安全问题吗?
    • 例如,您可以在另一个过滤器中添加您想要的任何其他验证机制(IP 地址等)。
    猜你喜欢
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多