Ruby 关于 Rails Rack Cors 中间件黑名单
Ruby on Rails Rack Cors Middleware Blacklisting
我正在 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
我正在 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