Questo array superglobale di PHP contiene alcune informazioni non del tutto attendibili.
Bisogna capire che $_SERVER
viene popolato con le informazioni passate a PHP dal web server (Apache, nginx, ecc.). Generalmente queste informazioni
si dividono in due categorie:
- informazioni interne
- informazioni esterne
Le informazioni interne (il protocollo, la directory di installazione del sito ecc.) sono di norma attendibili, a meno che non siano stati commessi errori nell'installazione e configurazione del web server.
Le informazioni esterne, ossia quelle ricavate dal client (HTTP_USER_AGENT, REMOTE_ADDR, REMOTE_HOST), possono essere sia direttamente falsificate dal client (ad esempio con una banale richiesta tramite curl) o dal web server (se ad esempio il web server funge da proxy).
La regola di massima è quella di diffidare sempre delle informazioni esterne e di effettuare verifiche più approfondite.