V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
baiduyixia
V2EX  ›  NGINX

nginx 如何屏蔽禁止屏幕分辨率: 800x600 的访问呢?

  •  
  •   baiduyixia · 2020-09-22 20:37:21 +08:00 · 5772 次点击
    这是一个创建于 1282 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问 nginx 如何屏蔽禁止屏幕分辨率:800x600 的设备访问呢?搜了一圈都是禁止平台类型的,有没有办法根据分辨率禁止禁止的?谢谢

    24 条回复    2020-09-23 10:25:07 +08:00
    codehz
        1
    codehz  
       2020-09-22 20:42:05 +08:00
    user-agent 里看不到分辨率信息,只能用 js 获取
    codehz
        2
    codehz  
       2020-09-22 20:43:17 +08:00
    (也不是没有非 js 解决方案,可以弄个 css,在最大宽度为 800,最大高度为 600 的时候显示一个全屏覆盖层(也可以发个请求到后端拉黑 ip
    KyonLi
        3
    KyonLi  
       2020-09-22 20:48:54 +08:00 via iPhone   ❤️ 7
    换个思路,用 iptables 做怎么样
    meathill
        4
    meathill  
       2020-09-22 20:51:11 +08:00
    不行。猜测楼主是想屏蔽掉某爬虫的巨量访问。
    Jirajine
        5
    Jirajine  
       2020-09-22 20:53:13 +08:00 via Android
    前端获得的是逻辑分辨率吧,屏幕缩放越大“分辨率”就越小。反爬意义也不大,这些都是零成本随便改的。
    baiduyixia
        6
    baiduyixia  
    OP
       2020-09-22 22:14:07 +08:00
    @meathill 是的,还要屏蔽掉采集
    baiduyixia
        7
    baiduyixia  
    OP
       2020-09-22 22:14:24 +08:00
    @KyonLi 不行,ip 一直在换
    baiduyixia
        8
    baiduyixia  
    OP
       2020-09-22 22:17:26 +08:00
    @Jirajine 从统计中获取到的信息,都是这个分辨率
    lovedebug
        9
    lovedebug  
       2020-09-22 22:18:10 +08:00
    记得有一篇论文可以根据用户的行为以及用户使用的浏览器等为一类用户打上唯一的标签,类似浏览器指纹。
    Ptu2sha
        10
    Ptu2sha  
       2020-09-22 23:19:59 +08:00
    类似百度云防护 没有 cookie 的输出 js 获取浏览器信息 校验后生成 cookie 再跳转
    hotsymbol
        11
    hotsymbol  
       2020-09-23 00:13:22 +08:00
    换个思路,用 pkill -9 nginx 怎么样
    wangyzj
        12
    wangyzj  
       2020-09-23 00:49:19 +08:00   ❤️ 1
    #2 正解
    qwerthhusn
        13
    qwerthhusn  
       2020-09-23 01:23:28 +08:00
    @KyonLi iptables 感觉还是不行,先啃了 TCP/IP 羊皮卷三套,这样就能玩转网络了,这个需求就知道咋做了
    image72
        14
    image72  
       2020-09-23 01:30:17 +08:00
    @media all and (max-width: 768px) {
    body:after {
    visibility: hidden;
    content: url(/url/800px.png)
    }
    }
    lichdkimba
        15
    lichdkimba  
       2020-09-23 01:44:41 +08:00   ❤️ 2
    @image72 掩耳盗铃
    baiduyixia
        16
    baiduyixia  
    OP
       2020-09-23 01:59:50 +08:00 via iPhone
    @image72 不行吧,采集爬的是代码了,你表面看不到实际也是可以的
    baiduyixia
        17
    baiduyixia  
    OP
       2020-09-23 02:00:54 +08:00 via iPhone
    @codehz 不行咯,采集又不受 css 这些影响
    no1xsyzy
        18
    no1xsyzy  
       2020-09-23 03:35:35 +08:00
    HTTP 请求中不包含 viewport 的信息。
    但能被统计到用的是 GA ?并且还运行了 js ?那这采集估计用的得是无头。
    用户侧也是随便替换这个信息。

    除非这个爬虫是个通用爬虫,假如突然爬不到你也根本不会发现,那可以自己写个简单的 JS 重定向。
    但 SEO 大概就没了。

    换个想法,套个 CF (
    ladypxy
        19
    ladypxy  
       2020-09-23 07:18:38 +08:00 via iPhone
    搜索 user fingerprint,用这个 js 生成用户 Id 和 cookie
    然后 nginx lua 来判断 cookie,没有就返回 302 。这样爬虫不加载 is 就会不停 302,加载了就会被识别
    xuanbg
        20
    xuanbg  
       2020-09-23 08:31:26 +08:00
    爬虫改成 1920 * 1080 你不就抓瞎了?反爬要根据用户行为特征,而不是设备特征。
    locoz
        21
    locoz  
       2020-09-23 09:13:53 +08:00 via Android
    我就这么跟你说吧…除非人家用的是没有做过任何魔改的自动化测试工具爬的,要不然你这种检测起不到任何作用。因为随便就能伪造,即使你上了浏览器指纹也一样。

    与其这么搞,不如加个风控厂商的无感验证,然后给接口都加上签名校验。虽然现在主流的无感验证也是有手就能破了,但是也还是能挡住些新手。
    nnnToTnnn
        22
    nnnToTnnn  
       2020-09-23 09:31:37 +08:00
    @locoz 换个思路

    - IP 地址的请求频率
    - 鼠标移动轨迹分析
    - 前端代码压缩 + 数据混淆
    - 动态根据算法生成校验值
    - 鼠标按下和弹起分析
    - 根据 navigator.plugins 来进行分析
    - 根据屏幕大小来进行分析
    - 根据 canvas 的绘画数据来进行分析
    - 根据 webRTC 来进行分析
    yhxx
        23
    yhxx  
       2020-09-23 09:58:02 +08:00
    换个思路,前端检测到这个类型的请求,上验证码?
    Juszoe
        24
    Juszoe  
       2020-09-23 10:25:07 +08:00
    你这是 X-Y problem,反爬不是这样反的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3234 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 12:10 · PVG 20:10 · LAX 05:10 · JFK 08:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.