Maison >développement back-end >Problème PHP >Comment configurer PHP pour interdire l'exploration de sites Web
Comment interdire l'exploration en PHP : obtenez d'abord les informations UA via la méthode "$_SERVER['HTTP_USER_AGENT'];" puis stockez le "USER_AGENT" malveillant dans le tableau et enfin interdisez la collection grand public telle que vide ; Programme "USER_AGENT".
Recommandé : "Tutoriel PHP"
Nous savons tous qu'il existe de nombreux robots d'exploration sur Internet . Certains sont utiles pour l'inclusion de sites Web, comme Baidu Spider, mais il existe également des robots d'exploration inutiles qui non seulement ne respectent pas les règles des robots et exercent une pression sur le serveur, mais ne peuvent pas non plus générer de trafic vers le site Web, comme Yisou Spider ( Dernier ajout : Yisou Spider Il a été acquis par UC Shenma Search ! Par conséquent, cet article a été supprimé de Yisou Spider ==>Articles associés). Récemment, Zhang Ge a découvert qu'il y avait beaucoup d'enregistrements d'exploration de Yisou et d'autres déchets dans le journal nginx, il a donc compilé et collecté diverses méthodes sur Internet pour empêcher les araignées poubelles d'explorer le site Web. a également fourni une référence à tous les webmasters.
Entrez le répertoire conf sous le répertoire d'installation de nginx, comme suit Enregistrez le code sous agent_deny.conf
cd /usr/local/nginx/conf
vim agent_deny.conf
#禁止Scrapy等工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; } #禁止指定UA及UA为空的访问 if ($http_user_agent ~* "FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) { return 403; } #禁止非GET|HEAD|POST方式的抓取 if ($request_method !~ ^(GET|HEAD|POST)$) { return 403; }
Ensuite, insérez le code suivant après l'emplacement / { dans la configuration liée au site Web :
include agent_deny.conf;
Par exemple, la configuration du blog de Zhang Ge :
[marsge@Mars_Server ~]$ cat /usr/local/nginx/conf/zhangge.conf
location / { try_files $uri $uri/ /index.php?$args; #这个位置新增1行: include agent_deny.conf; rewrite ^/sitemap_360_sp.txt$ /sitemap_360_sp.php last; rewrite ^/sitemap_baidu_sp.xml$ /sitemap_baidu_sp.php last; rewrite ^/sitemap_m.xml$ /sitemap_m.php last; 保存后,执行如下命令,平滑重启nginx即可: /usr/local/nginx/sbin/nginx -s reload
Mettez la méthode suivante après le premier //Obtenir des informations UA
$ua = $_SERVER['HTTP_USER_AGENT']; //将恶意USER_AGENT存入数组 $now_ua = array('FeedDemon ','BOT/0.1 (BOT for JCE)','CrawlDaddy ','Java','Feedly','UniversalFeedParser','ApacheBench','Swiftbot','ZmEu','Indy Library','oBot','jaunty','YandexBot','AhrefsBot','MJ12bot','WinHttp','EasouSpider','HttpClient','Microsoft URL Control','YYSpider','jaunty','Python-urllib','lightDeckReports Bot');
//Interdit USER_AGENT vide, dedecms et autres programmes d'acquisition grand public sont tous vides USER_AGENT, et certains outils d'injection SQL sont également vides USER_AGENT
if(!$ua) { header("Content-type: text/html; charset=utf-8"); die('请勿采集本站,因为采集的站长木有小JJ!'); }else{ foreach($now_ua as $value ) //判断是否是数组中存在的UA if(eregi($value,$ua)) { header("Content-type: text/html; charset=utf-8"); die('请勿采集本站,因为采集的站长木有小JJ!'); } }
S'il s'agit de vps, c'est très simple, utilisez curl -A pour simuler Just crawl, par exemple :
Simulez l'exploration par Yisou Spider :
curl -I -A 'YisouSpider' zhang.ge
Simulez l'exploration avec un UA vide :
curl -I -A ' ' zhang.ge
Simulez le crawl de Baidu Spider :
curl -I -A 'Baiduspider' zhang.ge
Modifiez le .htaccess dans le répertoire du site et ajoutez le code suivant (2 types de Code en option) : Les captures d'écran des trois résultats du crawl sont les suivantes :
On voit que les retours vides de Yisou Spider et UA sont 403 accès interdit signes, alors que Baidu Spider réussit Return 200, la description est valable !
①, le garbage collection avec des informations UA vides a été intercepté :
②. Les UA interdits sont interceptés :
Par conséquent, pour la collecte des spams, nous pouvons analyser les journaux d'accès du site Web pour en découvrir certains invisibles. . Une fois le nom de l'araignée trouvé correctement, il peut être ajouté à la liste des interdictions du code précédent pour interdire l'exploration.
Ce qui suit est une liste des spams UA courants sur Internet, à titre de référence uniquement, et vous êtes invités à y ajouter.
FeedDemon 内容采集 BOT/0.1 (BOT for JCE) sql注入 CrawlDaddy sql注入 Java 内容采集 Jullo 内容采集 Feedly 内容采集 UniversalFeedParser 内容采集 ApacheBench cc攻击器 Swiftbot 无用爬虫 YandexBot 无用爬虫 AhrefsBot 无用爬虫 YisouSpider 无用爬虫(已被UC神马搜索收购,此蜘蛛可以放开!) MJ12bot 无用爬虫 ZmEu phpmyadmin 漏洞扫描 WinHttp 采集cc攻击 EasouSpider 无用爬虫 HttpClient tcp攻击 Microsoft URL Control 扫描 YYSpider 无用爬虫 jaunty wordpress爆破扫描器 oBot 无用爬虫 Python-urllib 内容采集 Indy Library 扫描 FlightDeckReports Bot 无用爬虫 Linguee Bot 无用爬虫
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!