Heim  >  Artikel  >  Backend-Entwicklung  >  怎样检测客户端是浏览器发出的操作?

怎样检测客户端是浏览器发出的操作?

WBOY
WBOYOriginal
2016-06-06 20:42:211163Durchsuche

现在headless浏览器很多,能够模拟出浏览器的很多行为,这对于发垃圾广告信息来说相当容易,即使没有phantomJs或者CasperJs,通过抓包获取目标请求地址,以curl或者snoopy为例,user-agent、mac地址、ip地址、cookie等等全都可以伪造,唯一能防范的验证码,网上的打码软件也太多了,都是雇佣一些大妈大叔来识别,发SPAM也很容易,我就想有没有一种方法检测客户端是实实在在的浏览器,这样我就ban掉这个浏览器就容易多了

回复内容:

现在headless浏览器很多,能够模拟出浏览器的很多行为,这对于发垃圾广告信息来说相当容易,即使没有phantomJs或者CasperJs,通过抓包获取目标请求地址,以curl或者snoopy为例,user-agent、mac地址、ip地址、cookie等等全都可以伪造,唯一能防范的验证码,网上的打码软件也太多了,都是雇佣一些大妈大叔来识别,发SPAM也很容易,我就想有没有一种方法检测客户端是实实在在的浏览器,这样我就ban掉这个浏览器就容易多了

你连打码都算进去的话,没有。

可以试试这两个非常累的做法:

  1. 把验证码做复杂。比如gif动啊动的验证码。。。
  2. 限制频率,后端做记录,同一个ip请求频率过快就拉黑。。。

同意 @卖小女孩的火柴 的观点,你要先清楚你为什么要区分用户和机器人,通常有两种情况:

一是防攻击,减轻服务器压力,希望屏蔽掉非用户的访问;这种情况更好的方式是在系统中做好缓存,确保无论怎样量级的访问都不会拖垮服务器才是。

二是防止一些机制被滥用,比如防止用户使用机器人在「邀请朋友注册」中作弊;这种情况更好的方式是把用户和一个实体关联起来,比如可以是手机号,身份证号这样不容易被伪造的实体。当然,有一些用户是方案这种做法的,不希望提供个人隐私信息。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn