Ho un'applicazione in ascolto sulla porta 5000 a cui è possibile accedere a Internet tramite nginx con questa configurazione:
upstream myapp {
server 127.0.0.1:5000;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#...
}
Ora, supponendo che la porta 5000 sia accessibile solo dall'host locale, suppongo che tutte le comunicazioni esterne siano gestite da nginx, presumo che tutte le richieste che l'applicazione riceve quali non abbiano l'X-Real -IP header proviene da localhost.
Queste assunzioni sono errate? Potrebbe una persona senza accesso alla macchina accedere ancora all'applicazione Web senza autenticazione? Mi manca qualcosa?
Modifica: penso che potrei non presentare una domanda chiara qui. Probabilmente un mix tra la mia mancanza di conoscenza e me pensando di capire qualcosa di fondamentalmente sbagliato. Quindi, penso che potresti riassumere i miei dubbi nel rispondere a questo:
In questa situazione, posso supporre che se una richiesta alla mia web app non ha l'intestazione "X-Real-IP", allora proviene da localhost?
o il contrario:
Posso in qualche modo creare una richiesta che renderebbe nginx non impostato l'intestazione X-Real-IP, vista la configurazione sopra?
Cheers!