ホームページ  >  記事  >  バックエンド開発  >  怎样检测客户端是浏览器发出的操作?

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

WBOY
WBOYオリジナル
2016-06-06 20:42:211191ブラウズ

现在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请求频率过快就拉黑。。。

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

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

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。