PHP: perché diffidare di $_SERVER

PHP: perché diffidare di $_SERVER

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:

  1. informazioni interne
  2. 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.

Torna su