mirror of
https://0xacab.org/sutty/sutty
synced 2025-02-21 11:01:47 +00:00
Simplificar el procesamiento de CORS
Y ahora permitir cualquier URL posible :D
This commit is contained in:
parent
b2508de39b
commit
aebe48c784
1 changed files with 3 additions and 13 deletions
|
@ -13,29 +13,19 @@ Rails.application.config.middleware.insert_before 0, Rack::Cors do
|
||||||
# El problema sería que otros sitios con JS malicioso hagan pedidos
|
# El problema sería que otros sitios con JS malicioso hagan pedidos
|
||||||
# a nuestra API desde otros sitios infectados.
|
# 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
|
# XXX: Al terminar de entender esto nos pasó que el servidor recibe
|
||||||
# la petición de todas maneras, con lo que no estamos previniendo
|
# la petición de todas maneras, con lo que no estamos previniendo
|
||||||
# que nos hablen, sino que lean información. Solo va a funcionar si
|
# que nos hablen, sino que lean información. Solo va a funcionar si
|
||||||
# el servidor no tiene el Preflight cacheado.
|
# el servidor no tiene el Preflight cacheado.
|
||||||
#
|
#
|
||||||
# TODO: Limitar el acceso desde Nginx también.
|
# TODO: Limitar el acceso desde Nginx también.
|
||||||
#
|
|
||||||
# TODO: Poder consultar por sitios por todas sus URLs posibles.
|
|
||||||
origins do |source, _|
|
origins do |source, _|
|
||||||
# Cacheamos la respuesta para no tener que volver a procesarla
|
# Cacheamos la respuesta para no tener que volver a procesarla
|
||||||
# cada vez.
|
# cada vez.
|
||||||
Rails.cache.fetch(source, expires_in: 1.hour) do
|
Rails.cache.fetch(source, expires_in: 1.hour) do
|
||||||
uri = URI(source)
|
hostname = URI(source)&.host
|
||||||
|
hostname.present? && Deploy.find_by_hostname(hostname).present?
|
||||||
if (name = uri&.host&.split('.', 2)&.first).present?
|
rescue StandardError
|
||||||
Site.where(name: [name, uri.host + '.']).pluck(:name).first.present?
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
|
||||||
rescue URI::Error
|
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue