Peut-on usurper $_SERVER['REMOTE_ADDR'] / ip de l'utilisateur avec php cURL?
Bien le titre, fondamentalement, dit-il.
Mais pour plus d'info . .
Cette méthode fonctionne, mais . .
$ip = '1.1.1.1';
curl_setopt($handle, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "X_FORWARDED_FOR: $ip"));
Il ajoute que ces deux keys
sur le $_SERVER
tableau
HTTP_REMOTE_ADDR
HTTP_X_FORWARDED_FOR
La clé REMOTE_ADDR
reste toujours la même.
Peut REMOTE_ADDR
être changé? La réponse ici dit PAS. Mais un commentaire dit aussi Il peut, cependant, PAS l'utilisateur de l'adresse IP réelle car il peut être masqué par des fondés de pouvoir et d'autres méthodes. C'est pourquoi la règle générale est de ne pas dépendre sur $_SERVER['REMOTE_ADDR']
pour une fonction de sécurité.
Avec tout cela de côté est-il une boucle php méthode également masquer/masque/changer l'ip? (toute autre méthode php à part le code ci-dessus ferait.)
ET
Est-il un moyen de lutte contre la méthode OU Est-il un moyen pour obtenir le RÉEL IP d'un utilisateur?
Cheers!
- Si le site de votre connexion à des vérifications pour
HTTP_X_FORWARDED_FOR
et suppose que c'est la bonne IP surREMOTE_ADDR
alors vous avez réussi truqué. Cependant c'est vers le bas à la façon dont le site est programmé.
Vous devez vous connecter pour publier un commentaire.
Pas.
$_SERVER['REMOTE_ADDR']
est l'adresse IP physique le client a utilisé pour se connecter au serveur web, tel que confirmé par un à trois TCP handshake. Il n'y a aucun moyen de simuler cet effet par le réglage simple des en-têtes HTTP. Vous pouvez également ne pas faire de du serveur web/PHP remplacer cette valeur avec quelque chose d'autre de toute façon.$_SERVER['REMOTE_ADDR']
est définie à partir de la connexion TCP de l'information, de la période.À fait usurper une adresse IP, vous devez aller beaucoup plus loin dans la couche réseau et avoir un certain niveau de contrôle sur les équipements de réseau/de l'homme du milieu positions/proxy/étagère à être effectivement en mesure d'établir une connexion TCP d'une adresse IP autre que celui que vous êtes l'établissement de.
Pas. "L'adresse IP réelle de l'utilisateur" est l'adresse de votre serveur a reçu la connexion de, période. Il n'y a pas d'autre adresse pour vous. Le client se connecte à votre serveur à partir d'une certaine IP, ceci est confirmé par un à trois TCP handshake, c'est la seule adresse qui vous savez pour ce client. Ce client peut être un proxy ou un routeur NAT (c'est à dire un proxy) ou quelque chose d'autre, il vous suffit de ne pas savoir et ne devrait-il faire une différence pour vous.
Si le client utilise un navigateur derrière un proxy, le
$_SERVER['REMOTE_ADDR']
est l'adresse IP du proxy. La distance de l'adresse IP de la machine qui effectue la connexion.Si le proxy utilise des en-têtes pour indiquer si la connexion est effectuée pour le compte d'autres appareils, vous pouvez utiliser ces en-têtes pour déterminer l'adresse IP du navigateur derrière le proxy.
$_SERVER['HTTP_X_FORWARDED_FOR']
,$_SERVER['HTTP_X_FORWARDED']
,$_SERVER['HTTP_FORWARDED_FOR']
et$_SERVER['HTTP_FORWARDED']
Noter que le RFC 6648 désapprouvé les
X-*
les en-têtes et les RFC 7239 obsolèteX-Forwarded-*
par la définition d'unForwarded
en-tête.Vous pouvez vérifier quelques réponses à