Черный список ПО промежуточного слоя Ruby on Rails Rack Cors

Я работаю над устаревшим проектом в Rails 4, где для разрешения 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 в проекте. Я не смог найти в документации ничего, чтобы занести в черный список определенный домен.

Есть ли другой способ реализовать это? Спасибо за помощь заранее.


person govind_unnikrishnan    schedule 05.05.2020    source источник


Ответы (1)


Лучший способ занести небезопасные домены в черный список — использовать гем rack-attack.

# config/initializers/rack_attack.rb

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