php禁止网页抓取(【】访问日志如下图解决解决思路(一) )

优采云 发布时间: 2022-01-31 08:04

  php禁止网页抓取(【】访问日志如下图解决解决思路(一)

)

  问题

  过去客户可以正常访问的网站现在很慢,有时甚至拒绝访问。通过查看Nginx访问日志,发现大量请求指向同一个页面,并且访问的客户端IP地址不断变化,没有太多规则。很难通过限制IP来拒绝访问。但是请求的用户代理被标记为 Bytespider,这是一种流氓爬虫。访问日志如下:

  

  解决

  解决方法:因为user-agent被标记了Bytespider爬虫,这样可以通过Nginx规则限制流氓爬虫的访问,直接返回403错误。

  1、在/etc/nginx/conf.d目录下新建文件deny_agent.config配置文件(由于安装了Nginx,站点配置文件的路径可能不同):

  #forbidden Scrapy

if ($http_user_agent ~* (Scrapy|Curl|HttpClient))

{

return 403;

}

#forbidden UA

if ($http_user_agent ~ "Bytespider|FeedDemon|JikeSpider|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|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" )

{

return 403;

}

#forbidden not GET|HEAD|POST method access

if ($request_method !~ ^(GET|HEAD|POST)$)

{

return 403;

}

  2、在对应的站点配置文件中收录deny_agent.config配置文件(注意是在服务器中):

  

  3、重启Nginx,建议通过nginx -s reload平滑重启。重启前请先使用 nginx -t 命令检查配置文件是否正确。

  4、使用curl命令模拟访问,看看配置是否生效(如果返回403 Forbidden,则配置OK):

  

  附录:UA 集合

  FeedDemon 内容采集

BOT/0.1 (BOT for JCE) sql注入

CrawlDaddy sql注入

Java 内容采集

Jullo 内容采集

Feedly 内容采集

UniversalFeedParser 内容采集

ApacheBench cc攻击器

Swiftbot 无用爬虫

YandexBot 无用爬虫

AhrefsBot 无用爬虫

YisouSpider 无用爬虫(已被UC神马搜索收购,此蜘蛛可以放开!)

jikeSpider 无用爬虫

MJ12bot 无用爬虫

ZmEu phpmyadmin 漏洞扫描

WinHttp 采集cc攻击

EasouSpider 无用爬虫

HttpClient tcp攻击

Microsoft URL Control 扫描

YYSpider 无用爬虫

jaunty wordpress**扫描器

oBot 无用爬虫

Python-urllib 内容采集

Indy Library 扫描

FlightDeckReports Bot 无用爬虫

Linguee Bot 无用爬虫<br />

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线