请问 nginx 如何屏蔽禁止屏幕分辨率:800x600 的设备访问呢?搜了一圈都是禁止平台类型的,有没有办法根据分辨率禁止禁止的?谢谢抗投诉服务器
user-agent 里看不到分辨率信息,只能用 js 获取
(也不是没有非 js 解决方案,可以弄个 css,在最大宽度为 800,最大高度为 600 的时候显示一个全屏覆盖层(也可以发个请求到后端拉黑 ip
换个思路,用 iptables 做怎么样
不行。猜测楼主是想屏蔽掉某爬虫的巨量访问。
前端获得的是逻辑分辨率吧,屏幕缩放越大“分辨率”就越小。反爬意义也不大,这些都是零成本随便改的。
是的,还要屏蔽掉采集
不行,ip 一直在换
从统计中获取到的信息,都是这个分辨率
记得有一篇论文可以根据用户的行为以及用户使用的浏览器等为一类用户打上唯一的标签,类似浏览器指纹。
类似百度云防护 没有 cookie 的输出 js 获取浏览器信息 校验后生成 cookie 再跳转
换个思路,用 pkill -9 nginx 怎么样
正解
iptables 感觉还是不行,先啃了 TCP/IP 羊皮卷三套,这样就能玩转网络了,这个需求就知道咋做了
all and (max-width: 768px) {
body:after {
visibility: hidden;
content: url(/url/800px.png)
}
}
掩耳盗铃
不行吧,采集爬的是代码了,你表面看不到实际也是可以的
不行咯,采集又不受 css 这些影响
HTTP 请求中不包含 viewport 的信息。
但能被统计到用的是 GA ?并且还运行了 js ?那这采集估计用的得是无头。
用户侧也是随便替换这个信息。
除非这个爬虫是个通用爬虫,假如突然爬不到你也根本不会发现,那可以自己写个简单的 JS 重定向。
但 SEO 大概就没了。
换个想法,套个 CF (
搜索 user fingerprint,用这个 js 生成用户 Id 和 cookie
然后 nginx lua 来判断 cookie,没有就返回 302 。这样爬虫不加载 is 就会不停 302,加载了就会被识别
爬虫改成 1920 * 1080 你不就抓瞎了?反爬要根据用户行为特征,而不是设备特征。
我就这么跟你说吧…除非人家用的是没有做过任何魔改的自动化测试工具爬的,要不然你这种检测起不到任何作用。因为随便就能伪造,即使你上了浏览器指纹也一样。
与其这么搞,不如加个风控厂商的无感验证,然后给接口都加上签名校验。虽然现在主流的无感验证也是有手就能破了,但是也还是能挡住些新手。
换个思路
- IP 地址的请求频率
- 鼠标移动轨迹分析
- 前端代码压缩 + 数据混淆
- 动态根据算法生成校验值
- 鼠标按下和弹起分析
- 根据 navigator.plugins 来进行分析
- 根据屏幕大小来进行分析
- 根据 canvas 的绘画数据来进行分析
- 根据 webRTC 来进行分析
换个思路,前端检测到这个类型的请求,上验证码?
你这是 X-Y problem,反爬不是这样反的