Imposta 'Referrer-Policy' => 'same-origin'

Ciao,

Voglio impostare l’header ‘Referrer-Policy’ su ‘same-origin’. Questo non può essere fatto tramite nginx, perché è impostato tramite Redis/Rails.

Il default sembra essere:
Referrer-Policy' => 'strict-origin-when-cross-origin'

È possibile cambiarlo in:
Referrer-Policy' => 'same-origin'

Non sono riuscito a trovare la stringa all’interno/all’esterno del container. :roll_eyes:

Sì. Stupido. Non stavo cercando nel posto giusto.

Ho trovato molte voci di
Referrer-Policy' => 'strict-origin-when-cross-origin'

Ecco un elenco (grep strict-origin-when-cross-origin /var/www/discourse/ -R):

  • /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.2/lib/rack/protection/referrer_policy.rb: # referrer_policy:: The policy to use (default: ‘strict-origin-when-cross-origin’)
  • /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.2/lib/rack/protection/referrer_policy.rb: default_options :referrer_policy => ‘strict-origin-when-cross-origin’
  • /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_0.rb.tt:# “Referrer-Policy” => “strict-origin-when-cross-origin”
  • /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/application/configuration.rb: “Referrer-Policy” => “strict-origin-when-cross-origin”
  • /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-7.0.3.1/lib/action_dispatch/railtie.rb: “Referrer-Policy” => “strict-origin-when-cross-origin”
  • /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-protection-3.0.2/lib/rack/protection/referrer_policy.rb: # referrer_policy:: The policy to use (default: ‘strict-origin-when-cross-origin’)
  • /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-protection-3.0.2/lib/rack/protection/referrer_policy.rb: default_options referrer_policy: ‘strict-origin-when-cross-origin’
  • /var/www/discourse/config/initializers/new_framework_defaults_7_0.rb: “Referrer-Policy” => “strict-origin-when-cross-origin”
  • grep: /var/www/discourse/tmp/cache/bootsnap/compile-cache-iseq/f6/fc077900e2584e: binary file matches
  • grep: /var/www/discourse/tmp/cache/bootsnap/compile-cache-iseq/8a/029cf0d9c06e6d: binary file matches
  • grep: /var/www/discourse/tmp/cache/bootsnap/compile-cache-iseq/25/d90a345e4f734e: binary file matches

Non so davvero dove impostare same-origin. Qualche suggerimento?

Molto brutta modifica qui ma
potresti risolverlo in nginx aggiungendo un proxy_hide_header e seguito dal tuo add_header

Sì, brutta scorciatoia. Non mi piace. :wink:

Qualsiasi aiuto Herr, qual è il posto giusto che viene utilizzato in produzione?

Un hack leggermente meno sgradevole consiste nell’inserire questo nella sezione <head> HTML di un componente tema personalizzato:

<meta name="referrer" content="same-origin">

Questo non rimuove l’intestazione HTTP e non sono riuscito a trovare informazioni definitive se l’intestazione HTTP sovrascriva il tag meta HTML o viceversa, ma almeno secondo un rapido test con whatsmyreferer.com, sembra funzionare: nessun altro header di riferimento viene inviato sui link in uscita.