From 2a97fa81745f2a150181b1b22fce56b7e8c9ceef Mon Sep 17 00:00:00 2001 From: f Date: Tue, 8 Dec 2020 20:22:26 -0300 Subject: [PATCH] cors simplificado --- config/initializers/cors.rb | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb index 7117dbb..008aa33 100644 --- a/config/initializers/cors.rb +++ b/config/initializers/cors.rb @@ -6,36 +6,8 @@ # @see {https://github.com/cyu/rack-cors#origin} Rails.application.config.middleware.insert_before 0, Rack::Cors do allow do - # Queremos obtener un dominio válido y no permitir ningún otro - # origen. Como los sitios pueden tener muchos orígenes, necesitamos - # una forma de encontrarlos por su URL. - # - # El problema sería que otros sitios con JS malicioso hagan pedidos - # a nuestra API desde otros sitios infectados. - # - # XXX: La primera parte del dominio tiene que coincidir con el - # nombre del sitio. - # - # XXX: Al terminar de entender esto nos pasó que el servidor recibe - # la petición de todas maneras, con lo que no estamos previniendo - # que nos hablen, sino que lean información. - # - # TODO: Limitar el acceso desde Nginx también. - # TODO: Poder consultar por sitios por todas sus URLs posibles. - origins do |source, _| - # Cacheamos la respuesta para no tener que volver a procesarla - # cada vez. - Rails.cache.fetch(source, expires_in: 1.hour) do - if (name = URI(source)&.host&.split('.', 2)&.first).present? - Site.where(name: name).pluck(:name).first.present? - else - false - end - rescue URI::Error - false - end - end - + # Ver el historial de git para saber cómo llegamos a esto... + origins '*' resource '*', headers: :any, methods: %i[get post patch put] end end