-1
votes

Comment détecter les proxies avec PHP

Parfois, les gens utilisent un proxy pour masquer leur vraie adresse IP. Je ne veux pas ça. Je veux limiter cet utilisateur à accéder à mon site Web.

J'ai construire un site Web en PHP.


5 commentaires

S'il vous plaît partager ce que vous avez essayé.


Comment osez-vous faire cette décision pour vos utilisateurs? S'ils choisissent d'utiliser un proxy, ils ont probablement une raison de. Ce n'est pas votre endroit pour le deviner. Et puis il y a beaucoup de cas où les utilisateurs sont forcés d'utiliser un proxy. Pensez aux réseaux d'entreprise, aux écoles, aux États-nations oppressants. Heureusement pour vos utilisateurs, il n'ya aucun moyen de détecter de manière fiable la présence de mandataires.


@Peter peut-être qu'il est lié par la loi (pensez à copyright) pour empêcher les personnes d'autres pays d'accéder au contenu, comme Netflix, par exemple


@Peter Web Application n'est accessible que pour les utilisateurs que je dois donner accès, c'est pourquoi je veux restreindre


S'il vous plaît Modifier La question de clarifier ce que vous cherchez. Si vos utilisateurs sont accordés, l'accès est-il un cas d'utilisation où vous devez restreindre la manière dont ils accèdent votre site? Si oui, veuillez préciser cela.


3 Réponses :


0
votes

Vous pouvez bloquer les proxies à l'aide d'en-têtes HTTP " xxx


0 commentaires

0
votes

2 façons que vous pouvez y parvenir. Ces techniques fonctionnent pour tout site compatible PHP, y compris WordPress, Drupal, Joomla et de nombreux autres autres

1) Visites de proxy Block via la numérisation de port P>

function blockproxy_visits() {

$headers = array('CLIENT_IP','FORWARDED','FORWARDED_FOR','FORWARDED_FOR_IP','VIA','X_FORWARDED','X_FORWARDED_FOR','HTTP_CLIENT_IP','HTTP_FORWARDED','HTTP_FORWARDED_FOR','HTTP_FORWARDED_FOR_IP','HTTP_PROXY_CONNECTION','HTTP_VIA','HTTP_X_FORWARDED','HTTP_X_FORWARDED_FOR');

foreach ($headers as $header){
    if (isset($_SERVER[$header])) {
        die('Proxy access not allowed.');
    }
} }


0 commentaires

1
votes

Il est plus sûr et plus efficace de faire la plupart des travaux de sentinelle au périmètre (contrôle d'accès du serveur Web) plutôt que la porte d'entrée (PHP).

Vérification de l'en-tête HTTP: Si vous utilisez php, je suppose peut également modifier .htaccess et il est préférable de bloquer là-bas: xxx

Ci-dessus vient de https: // périshablypress.com/press/2008/04/20/how-to-block-proxy-servers-via-htaccess/ ) Vous pouvez étendre avec d'autres contrôles d'en-tête selon les besoins. N.b. Si vous utilisez un fournisseur d'hébergement, il peut y avoir d'autres serveurs (par exemple inverse proxy) devant votre serveur Web. par exemple. Un serveur Nginx peut fournir une adresse IP de visiteur dans 'http_x_real_ip', mais il n'existe aucune norme définie, elle peut donc fournir votre adresse IP de votre visiteur non proxé dans l'un des en-têtes que vous bloquez. Vous pouvez vérifier cela à l'aide du code PHP dans Cet article (mon) article .

Proxies anonymes: Vérification des en-têtes ne bloquera pas ceux que vous souhaitez moins accéder à votre site à l'aide de proxies anonymes.

Comme indiqué dans Autre réponse, vous pouvez utiliser php pour vérifier en fonction du numéro de port, mais des commentaires sur une réponse similaire dise son improactique en raison de la lenteur, Faux positifs et alertes malveillants sur le périphérique client par certains packages AV (plutôt que votre site fournissant immédiatement la réponse attendue que votre site "Port analyse" l'ordinateur des clients).

Si vous utilisez gratuitement Cloudflare, vous pouvez bloquer Connaître Tor. (DarkWeb VPN) Quitter les nœuds identifiés comme "T1".

Par hasard J'ai découvert que mon hôte fourni serveur comprenait la géolocalisation IP. Si votre serveur Apache ou LIPETSEPEED utilise mod_geoip avec des données maxmin à jour, alors geoIP_Country_Code == "A1" indique un proxy anonyme connu. De plus, quand j'ai vérifié il y a un an, le VPN libre Operas a toujours été identifié comme "UE" quel que soit le continent qui a été sélectionné dans le navigateur. MaxMind utilise "l'UE" pour certaines adresses IP connues pour être européennes mais non identifiées dans un pays - il en résultera des faux positifs.

htack: xxx

ou php: xxx

si votre serveur n'a pas mod_geoip, mais vous utilisez déjà "maxmind for php" pour rechercher des codes de pays, vous pouvez modifier votre adresse IP de scripts vers le pays Code Recherche et meurez si le code est "A1".


0 commentaires