Usar el referer como fallback

Mucha gente no puede enviar el formulario de contacto porque su
navegador no envía el Origin, con esto al menos podemos recuperarlo del
Referer.
This commit is contained in:
f 2021-07-29 10:55:53 -03:00
parent 5d9c379e0e
commit 113498b4bf

View file

@ -85,7 +85,9 @@ module Api
# XXX: Este header se puede falsificar de todas formas pero al # XXX: Este header se puede falsificar de todas formas pero al
# menos es una trampa. # menos es una trampa.
def site_is_origin? def site_is_origin?
return if origin? && site.urls(slash: false).any? { |u| origin.to_s.start_with? u } return if site.urls(slash: false).any? do |u|
(origin || origin_from_referer).to_s.start_with? u
end
@reason = 'site_is_not_origin' @reason = 'site_is_not_origin'
render plain: Rails.env.production? ? nil : @reason, status: :precondition_required render plain: Rails.env.production? ? nil : @reason, status: :precondition_required