Maison > Article > développement back-end > Pouvez-vous vraiment faire confiance à $_SERVER['REMOTE_ADDR'] ?
La fiabilité de $_SERVER['REMOTE_ADDR']
Le $_SERVER['REMOTE_ADDR'] est une variable vitale dans le développement Web, fournir l'adresse IP du client initiant une requête HTTP. Cependant, il existe une idée fausse répandue selon laquelle cette valeur peut être facilement usurpée, ce qui suscite des inquiétudes quant à sa fiabilité.
$_SERVER['REMOTE_ADDR'] peut-il être fiable ?
Oui, il est généralement sûr de faire confiance à la valeur $_SERVER['REMOTE_ADDR'] . Il représente l'adresse IP de la connexion TCP du client et ne peut pas être modifié en modifiant les en-têtes HTTP. En effet, l'adresse IP est une propriété de la connexion TCP/IP et n'est pas transmise dans le cadre des en-têtes HTTP.
Pièges potentiels
Cependant, il existe une exception importante à cette règle. Si votre serveur est derrière un proxy inverse, le REMOTE_ADDR représentera l'adresse IP du serveur proxy, pas celle du client. Dans ce cas, l'adresse IP du client sera incluse dans un en-tête HTTP, généralement X-Forwarded-For.
Par exemple, si votre serveur est derrière un proxy inverse avec l'adresse IP 111.111.111.111, les demandes à votre serveur semblera provenir de cette adresse IP. Pour obtenir l'adresse IP du client dans ce scénario, vous devrez examiner l'en-tête X-Forwarded-For.
Cependant, dans les scénarios les plus courants où vous recevez directement des requêtes HTTP de clients sans proxy inverse, faites confiance $_SERVER['REMOTE_ADDR'] est une approche fiable pour déterminer l'adresse IP du client.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!