Ho una piccola soluzione che credo possa garantire caricamenti sicuri per i siti che richiedono il login.
In sostanza, configurate Authentication Based on Subrequest Result | NGINX Documentation per i caricamenti. L’unico problema è che non riesco a trovare un URL che restituisca un 403/401 quando l’opzione “login-required” è attiva, quindi l’accesso a un caricamento senza essere loggati genera un errore 500. Questo accadrebbe solo se qualcuno avesse un URL di caricamento e tentasse di accedervi senza essere loggato, quindi non sembra un problema grave.
È qualcosa del genere:
# JP
location = /auth {
internal;
proxy_pass http://discourse/categories;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
# END JP
location ~ ^/uploads/ {
auth_request /auth; #$JP
# NOTA: è davvero fastidioso non poter definire le intestazioni
# a livello superiore e ereditarle.
#