PHP防止网站采集

1. 问题描述?

网站如何通过PHP防采集?比如:防采套路:输入验证码框验证

PHP防止网站采集

通过什么判断是爬虫、搜索引擎、用户浏览?但不要影响搜索引擎,用户浏览。目的就是判断出爬虫就直接禁止访问或者封IP之类的操作。
能有个参考案例最好了。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 18
巴啦啦

单IP访问频次,是频次,即在某一段时间内的访问次数。 根据频次来判断,除非对方开代理池,不然你是比较难判断的。

1年前 评论

不是什么重要信息真不要弄这些弹出层。弹的越多越影响体验不说,真正能防爬虫少之又少。就是限制ip访问这些。或者需要登录,限制登录账号访问频次等。

1年前 评论
fatrbaby

目前没有100%防采集的办法,哈哈。

1年前 评论
aa24615 1年前
Joker-smile 1年前

对于爬虫,各大搜索厂商都有公布自家 bot 所使用的 IP 段,把这些 IP 段加入白名单放过。
其他的访问,未登录的就像阿里系那样,点两下就来个验证码 😄
使用手机号或者微信验证注册,对于已登录的,就限制每秒请求数,加个限流,对于异常的用户直接封停账号。

1年前 评论

1.内网服务器 2.关闭网站 :grin:

1年前 评论

一般防不了,只能增加爬虫的开发和维护成本。

1年前 评论
aa24615

将爬虫的ip设为白名单

1年前 评论
aa24615

有时候被爬也是好事情,你可以在页面中插入外链,一般对方采集后,基本上都是建站的,当爬虫爬到他的网站时,还能给你带来流量/权重

1年前 评论

可能完全不影响爬虫,想要完全不影响正常用户不可能的

我现在中间件校验,只针对需要保护的资源路由

先收集搜索引擎的IP,host命令确认之后,IP段放到白名单里,不做处理,基本上几天就能收集全了

不在白名单里的

先记录ip,ua,asn,以及header的referer,然后每天awk统计一下

laravel开configureRateLimiting,频繁访问的返回429,然后统计429的状态码,不正常的多加验证码

之后收集数据先按照asn屏蔽,这个很好用,效果不错,直接把阿里云,腾讯云,amazon,ms,ovh,都屏蔽了

然后有些爬虫写的很随意,ua都不设置的,比如 android [2-6] ,os x 10_[0-9],Windows 98/CE/NT [1-4],直接屏蔽/跳验证码,还有请求头数量就45个的,肯定不正常,屏蔽,常见的ua,curl/wget/python也屏蔽

在往后就是代理池的问题,有的代理池是不停拨号,ip总在一个范围内波动,这种屏蔽

还有一种代理池是肉鸡程序,用的家宽,分析日志判断爬虫和真实用户的大致比例,设定一个威胁值和危险期,危险期内用户每次访问威胁值增加,达到阈值就验证,用户通过就session给个安全期,安全期内不认证,通过的同时降低总的威胁值

最后说下验证码,你那个验证码没用的,免费的ocr就搞定了,推荐给你个验证码破解项目,你可以测试你的验证码,带带弟弟https://github.com/sml2h3/ddddocr

1年前 评论
aa24615 1年前

了解下 cf 就是干这事 勾选选项即可 什么火车 Python 都没办法

1年前 评论

头里面加一些连七八糟的验证信息,发现验证信息不对或者没有直接404就行了,验证信息包括用户token,请求参数,请求类型,请求路径,请求时间,请求签名等,然后中间件进行验证 只是增加爬取成本,同样无法阻止

1年前 评论

PHP可以通过以下几种方式来防止采集:

  1. 设置HTTP反盗链:可以在服务器端设置HTTP反盗链,禁止除了指定来源以外的网站访问本网站的图片和资源。
  2. 设置User-Agent限制:可以在服务器端设置User-Agent限制,禁止除了正常浏览器以外的爬虫访问本网站。
  3. 设置IP黑名单:可以在服务器端设置IP黑名单,禁止除了指定IP以外的用户访问本网站。
  4. 设置滑动验证码:可以在服务器端设置滑动验证码,禁止机器人自动提交表单。

在判断是爬虫、搜索引擎、用户浏览时,可以通过检查HTTP请求头中的User-Agent字段来判断是否是爬虫、搜索引擎或用户浏览。

具体来说,可以使用如下的方法来判断:

  1. 爬虫:爬虫一般会模拟浏览器的行为,但会在User-Agent字段中添加特定的标识,例如"Googlebot"、"Baiduspider"等。因此,可以在检查User-Agent字段时,判断是否包含这些标识,来判断是否是爬虫。
  2. 搜索引擎:搜索引擎一般也会模拟浏览器的行为,但会在User-Agent字段中添加特定的标识,例如"Googlebot"、"Bingbot"等。因此,可以在检查User-Agent字段时,判断是否包含这些标识,来判断是否是搜索引擎。
  3. 用户浏览:用户浏览时,一般不会在User-Agent字段中添加特定的标识。因此,可以在检查User-Agent字段时,判断是否包含特定的标识,如果不包含,则可以判断为用户浏览。

此外,还可以通过检查请求的频率、请求的行为等因素,来进一步确定是否是爬虫、搜索引擎或用户浏览。

1年前 评论
sanders

不要局限于PHP技术。

个人认为从两方面来思考此类问题:一是技术层面,最简单的就是建立授权访问功能,提升一点则是爬虫行为鉴别;二是法律层面,这里可以引用《中华人民共和国数据安全法》:

第三十二条 任何组织、个人收集数据,应当采取合法、正当的方式,不得窃取或者以其他非法方式获取数据。 法律、行政法规对收集、使用数据的目的、范围有规定的,应当在法律、行政法规规定的目的和范围内收集、使用数据。

结合技术手段鉴别爬虫行为,定位爬虫来源,尽可能的收集证据;再结合注册用户必须提交真实信息进行实名认证。我相信执法机关会协助我们保护数据安全,惩处数据盗用行为。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!