Я настраиваю Политику безопасности контента для нашего приложения Rails 5.2.Мне нужно внести в белый список некоторые домены в нашем CSP.Я хотел бы разместить список доменов в другом месте, чтобы я мог ссылаться на них в других местах приложения, а затем программно генерировать заголовки CSP из этого списка.
Просмотр исходного кода для КонтентаМеханизмы настройки политики безопасности в Rails 5 , похоже, что происходит какое-то волшебное метапрограммирование, поэтому мне не ясно, как выполнить то, что мне нужно сделать.Похоже, что функции, которые мне нужно вызывать для установки заголовков , могут быть разборчивыми в том, как именно они хотят вызываться.В частности, мне неясно, могу ли я передавать им массивы или безопасно вызывать их несколько раз, или они выполняют магию метапрограммирования, которая работает, только если домены передаются в качестве отдельных аргументов функции.
Могу ли япередать массив в заголовок, который я хочу установить, как это?
whitelisted_domains = ['https://example.com', 'self']
Rails.application.configure do
config.content_security_policy do |csp|
csp.child_src whitelisted_domains
end
end
Или я могу вызывать одну и ту же функцию несколько раз, как это?
whitelisted_domains = ['https://example.com', 'self']
Rails.application.configure do
config.content_security_policy do |csp|
whitelisted_domains.each {|domain| csp.child_src domain}
end
end
Если ни один из этихбудет работать, как лучше всего выполнить то, что я хочу сделать?