Est-il sûr de faire confiance $_SERVER['REMOTE_ADDR']
? Peut-il être remplacé en modifiant l'en-tête de la demande ou quelque chose du genre?
Est-il prudent d'écrire quelque chose comme ça?
if ($_SERVER['REMOTE_ADDR'] == '222.222.222.222') { // my ip address
$grant_all_admin_rights = true;
}
php
security
ip-address
Lumière argentée
la source
la source
$_SERVER['REMOTE_ADDR']
variable en définissant un en-tête de requête HTTP. PHP préfixe automatiquement tous les en-têtes de requête HTTPHTTP_
lors de la création de clés dans le$_SERVER
superglobal.Réponses:
Oui, c'est sûr. Il s'agit de l'adresse IP source de la connexion TCP et ne peut pas être remplacée par la modification d'un en-tête HTTP.
Vous voudrez peut-être vous inquiéter si vous êtes derrière un proxy inverse, auquel cas REMOTE_ADDR sera toujours l'adresse IP du serveur proxy et l'adresse IP de l'utilisateur sera fournie dans un en-tête HTTP (tel que X-Forwarded-For ). Mais pour le cas d'utilisation normal, la lecture de REMOTE_ADDR convient.
la source
$_SERVER['REMOTE_ADDR']
est l'adresse IP de la connexion TCP. Bien qu'il soit techniquement possible d'usurper de manière bidirectionnelle les adresses IP sur Internet (en annonçant des routes erronées via BGP), de telles attaques sont susceptibles d'être repérées et non disponibles pour l'attaquant typique - en gros, votre attaquant doit avoir le contrôle d'un FAI ou d'un opérateur. Il n'y a pas (encore) d'attaques d'usurpation unidirectionnelle contre TCP. L'usurpation d'adresse IP bidirectionnelle est cependant triviale sur un réseau local.Sachez également qu'il ne s'agit peut-être pas d'une adresse IPv4, mais d'une adresse IPv6. Votre vérification actuelle est correcte à cet égard, mais si vous vérifiez que cela
1.2.3.4
ne se produit que n'importe où à l' intérieur$_SERVER['REMOTE_ADDR']
, un attaquant pourrait simplement se connecter à partir de2001:1234:5678::1.2.3.4
.En résumé, pour toutes les applications autres que critiques (bancaires / militaires / dommages potentiels> 50.000 €), vous pouvez utiliser l'adresse IP distante si vous pouvez exclure les attaquants de votre réseau local.
la source
$_SERVER['REMOTE_ADDR']
l'adresse IP sur laquelle la connexion TCP est entrée dépend entièrement de votre SAPI.you have been kicked off the wlan
facilitent la création de paquets d' usurpation avec les bons outils. googleWPA downgrade test
, par exempleComme mentionné ci-dessus, ce n'est pas absolument sûr. Mais cela ne signifie pas que vous ne devriez pas l'utiliser. Pensez à combiner cela avec d'autres méthodes d'authentification, par exemple la vérification des valeurs COOKIE.
la source