Maison  >  Article  >  développement back-end  >  Conseils pour les fausses sources php HTTP_REFERER

Conseils pour les fausses sources php HTTP_REFERER

墨辰丷
墨辰丷original
2018-06-09 09:30:001832parcourir

Cet article présente principalement les techniques de forgeage du source HTTP_REFERER en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

L'exemple de cet article décrit la méthode de forgeage du source HTTP_REFERER en PHP. L'analyse spécifique est la suivante :

Les machines de publication automatiques sur les forums, les machines de publication automatiques sur les tops, etc. sont très populaires. sur Internet aujourd'hui, et ils ont apporté de grands changements à de nombreux sites Web de forums. De nombreux sites Web utilisent simplement la valeur de HTTP_REFERER pour filtrer les publications automatiques. Cependant, les informations source HTTP_REFERER des pages Web peuvent être falsifiées. Tout est une arme à double tranchant, tant que vous savez bien l'utiliser, il a sa valeur.

Il y a longtemps, le téléchargement de logiciels tels que Flashget, Thunder, etc. pouvait falsifier des informations sur la source, et le faux HTTP_REFERER de ces logiciels était principalement basé sur la sock sous-jacente pour construire de fausses informations d'en-tête http pour atteindre l'objectif. . Cet article abordera d'un point de vue purement technique la méthode de forge de HTTP_REFERER dans le langage PHP, afin de permettre à chacun de comprendre le processus et d'offrir une meilleure défense.

Environnement : Apache/2.2.8 + PHP/5.2.5 + système Windows XP, tests locaux.
Tout d'abord, créez deux fichiers 1.php et 2.php dans le répertoire racine virtuel du site Web.
Parmi eux, le contenu du fichier 1.php est le suivant :

<?php
$host = &#39;127.0.0.1&#39;;
$target = &#39;/2.php&#39;;
$referer = &#39;http://www.PHP.cn&#39;; //伪造HTTP_REFERER地址
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp){
echo "$errstr($errno)<br />\n";
} 
else{
$out = "
GET $target HTTP/1.1
Host: $host
Referer: $referer
Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)){
echo fgets($fp, 1024);
}
fclose($fp);
}
?>

L'autre fichier 2.php est très simple, il suffit d'écrire une ligne de code pour lire la valeur actuelle du serveur HTTP_REFERER , comme suit :

<?php
echo "<hr />";
echo $_SERVER["HTTP_REFERER"];
?>

Exécutez le fichier 1.php et ouvrez http://localhost/1.php La page renvoie les informations suivantes :

HTTP/1.1. 200 OK Date : vendredi 4 avril 2008 16:07:54 GMT Serveur : Apache/2.2.8 (Win32) PHP/5.2.5 X-Powered-By : PHP/5.2.5 Longueur du contenu : 27 Connexion : fermer le contenu -Type : text/html; charset= gb2312

Voir le résultat ? Les informations source HTTP_REFERER falsifiées ont réussi. Par conséquent, si votre site Web juge uniquement HTTP_REFERER, il n'est pas sûr. D'autres peuvent également créer de telles sources. Une méthode de défense simple consiste à ajouter un code de vérification à la page de vérification ; il peut également être combiné avec la méthode de jugement IP.

Supplément : Le code des sources falsifiées sous ASP est le suivant :

<%
dim http 
set http=server.createobject("MSXML2.XMLHTTP") &#39;//MSXML2.serverXMLHTTP也可以
Http.open "GET",url,false 
Http.setRequestHeader "Referer","http://www.jb51.net/" 
Http.send()
%>

Si vous êtes une personne réfléchie, veuillez ne pas utiliser ces méthodes de manière malveillante. Après tout, si vous le faites aussi. beaucoup de mauvaises choses, l'effet sera trop important. ;Par exemple, si vous publiez beaucoup de spam, cela peut vous apporter beaucoup de liens externes à court terme, mais de telles méthodes de chapeau noir seront découvertes plus tôt ou par les moteurs de recherche. plus tard, et ces liens qui ont été envoyés sont comme de l'eau qui coule. Si vous ne pouvez pas les reprendre, de telles preuves incriminantes sont hors de votre contrôle.

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Méthodes de contrôle de chaîne et de processus PHP

PHP réalise la conversion de caractères pleine chasse Demi -méthode de largeur

Fonction pour convertir le montant numérique php en montant en capital chinois

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn