ruby-on-rails - Ruby on Rails Rack Cors 中间件黑名单

标签 ruby-on-rails ruby rack-cors

我正在 Rails 4 中处理遗留项目,其中 rack-cors gem 用于允许 CORS。我知道有一个选项可以将域列入白名单。

use Rack::Cors do
  allow do
    origins 'localhost:3000', '127.0.0.1:3000',
        /\Ahttp:\/\/192\.168\.0\.\d{1,3}(:\d+)?\z/
        # regular expressions can be used here

    resource '/file/list_all/', :headers => 'x-domain-token'
    resource '/file/at/*',
     methods: [:get, :post, :delete, :put, :patch, :options, :head],
     headers: 'x-domain-token',
     expose: ['Some-Custom-Response-Header'],
     max_age: 600
     # headers to expose
  end
end

是否有任何选项可以将域列入黑名单,以便为该特定域禁用 CORS。我试图弄清楚这一点,因为我无法真正找到项目中使用该 API 的所有域。我在文档中找不到任何内容来将特定域列入黑名单。

还有其他方法可以实现吗?我在这里先向您的帮助表示感谢。

最佳答案

将不安全域列入黑名单的最佳方法是使用 rack-attack gem

# config/initializers/rack_attack.rb

Rack::Attack.blocklist('block spammers') do |req|
  request.referer =~ spammer_regexp # /foo\.com|bar\.com/
end

关于ruby-on-rails - Ruby on Rails Rack Cors 中间件黑名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61608077/

相关文章:

ruby-on-rails - ActiveRecord::RecordNotFound - 无法找到 id=new 的联系人

ruby-on-rails - M.Hartl 的 Rails 教程 7.4.1 中的参数数量错误(2 对 1)错误

ruby-on-rails - Rack-cors 未在 swagger-ui_rails 的生产环境中显示 header

ruby-on-rails - Rails 6、React、Rack-Cors

ruby-on-rails - 移除 VCR 盒不会导致 RSpec 失败

ruby-on-rails - 通过删除 tmp 文件(或任何此类文件?)来加速 rspec

ruby-on-rails - 在已安装 Ruby 的情况下使用 RVM

ruby - ubuntu 10.04 上的 phusion 乘客 : why apache2-prefork-dev when we want apache2-mpm-worker?

ruby-on-rails - 委托(delegate)协会