首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖request.forgery_whitelisted?

覆盖request.forgery_whitelisted?
EN

Stack Overflow用户
提问于 2011-07-01 16:22:01
回答 1查看 168关注 0票数 0

当在我的某个Rails控制器中调用某个方法时,我想检查用户的IP地址是否在可信列表中,如果是,则重写request.forgery_whitelisted?方法设置为true,这样就不会强制实施CSRF保护。

我读过的一篇博客文章似乎表明,在控制器操作中声明以下内容可以实现这一点,但它仍然会抛出CSRF保护错误。

代码语言:javascript
复制
if request.remote_ip = "127.0.0.1"
 def request.forgery_whitelisted?; true; end
end

是否有其他地方需要发生这种情况,以便尽早覆盖该方法以使其生效?

EN

回答 1

Stack Overflow用户

发布于 2011-07-02 16:36:20

以下任一操作都应该有效:

ApplicationController:中的

  • override/monkey-patch“verify_authenticity_token”方法

代码语言:javascript
复制
def verify_authenticity_token
  super unless request.remote_ip = '127.0.0.1' # TODO: replace this with actual white-listing logic
end

  • 猴子补丁'forgery_whitelisted?‘方法:

代码语言:javascript
复制
module ActionDispatch
  class Request
    def forgery_whitelisted?
      super if remote_ip == '127.0.0.1' # TODO: replace this with actual white-listing logic
    end
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6545392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档