V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
godblessumilk
V2EX  ›  信息安全

大屌们,如何动态生成 http 的请求路径 ??为了防黒产刷网站接口(不想买验证码服务,穷

  •  
  •   godblessumilk · 68 天前 via Android · 962 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,验证码服务让我太感动了,他不止抢钱(调用一次 api 就几块钱),抢用户好感度,还给我送个时不时会被黒产攻破的验证码

    由于没有检索到动态生成 http request url 的成熟方案,我目前想到的粗暴办法,是将整个网站用服务端渲染,服务端分发网站内容之前,用一个随机数算法,同一个接口,给每个用户生成不同的 request url 。

    类似于 piao 客 和皮条客为了 piao 女昌 交易不被发现,piao 客 想见 女支女,只能每次都由皮条客告诉 piao 客 去找 女支女 的路线怎么走。

    post body 带动态参数(比如 token )在我看来就像是数学题里的未知数 xyz ,如果 token 是一个参数,那加上 http request url 就是第二个参数,验证码就是第三个参数。

    在数学的代数学上,这些动态参数被称作“元”。

    学过初中数学都知道,二元一次方程会比一元一次方程计算困难,

    网站和黒客对抗的过程,就是比赛 出数学题、解数学题 的过程,只要网站的数学题出得够难(例:用牛逼的加密算法),黒客破解该数学题的成本大于收益,那黒客就不会闲的蛋疼来搞了

    注:本人是一名 web 开发,目前的常用技术栈为 Vue.js + python ( Flask 常用) + Nginx + docker + Linux ,所以希望大屌们能推荐一个开源的 python 包让我快速实现这个需求!!!!

    blankmiss
        1
    blankmiss  
       68 天前
    那不有逆向你前端 js 的操作,不应该从限流接口来做处理吗,针对接口进行熔断或者降级
    rev1si0n
        2
    rev1si0n  
       67 天前
    简单说一句:不可能的事情,总有办法可以刷你。
    godblessumilk
        3
    godblessumilk  
    OP
       67 天前 via Android
    @rev1si0n 只要成本够高,收益够低,黒铲就盯不上我
    tomato96
        4
    tomato96  
       67 天前
    post body 带动态参数(比如 token )在我看来就像是数学题里的未知数 xyz ,如果 token 是一个参数,那加上 http request url 就是第二个参数,验证码就是第三个参数。
    ——————————————————
    为什么非得用 URL 做第二个参数呢,body 或者 query 带上一个随机生成的、每个用户都不同的 code 标识不就行了?吗?
    enrolls
        5
    enrolls  
       67 天前 via iPhone   ❤️ 1
    参照微信,url 加密,解决下一个地址问题; ip 限流解决速度问题。还有什么问题?
    join23
        6
    join23  
       67 天前 via Android
    根本不是问题啊?私人站还是公司的?性质是易招黑客体质?有巨量机密?别意淫了,你想什么方法都可以,但是要以事实为依据,私人的,自己爱怎么设计都行,反正提高自己水平。公司的,你提出实际问题后由公司决策,担心钱,根本没有办法解决。没有大仇的,黑客不可能盯上你。
    IvanLi127
        7
    IvanLi127  
       67 天前 via Android
    没必要,url 路径和查询参数与请求体一样,都是入参,加 token 效果是一样的。动态变化的 url 只能让他们找你接口麻烦一点点。。。多搞几次也能发现规律。。。要是他直接模拟点击,接口啥样都无所谓。。。所以建议在前面套低成本的人机验证,减少高成本人机验证被刷的风险
    Herry001
        8
    Herry001  
       67 天前
    这玩意有啥用……你要不研究下 Selenium ?不用验证码这货基本横着走。
    公司项目找公司报销验证码,个人项目上 google recaptcha ,免费足够。
    godblessumilk
        9
    godblessumilk  
    OP
       67 天前 via Android
    @Herry001 Selenium 搞群控脚本是吧,很刑噢
    godblessumilk
        10
    godblessumilk  
    OP
       67 天前 via Android
    @IvanLi127 起码模拟真实用户操作这一步,黒客成本就已经上去了。

    这个问题的本质可以归纳为:如何区分 [真实用户] 还是 [机器用户] 。

    我目前想到有另一个办法: [真实用户] 是有作息时间的, [机器用户] 普遍没有作息时间,机器可以 24h 不睡觉。用这个特征也能拦下一部分。

    另外 [真实用户] 有现实世界的公民身份证,注册账号时强制实名认证,这里也能拦下一批 [机器用户]
    godblessumilk
        11
    godblessumilk  
    OP
       67 天前 via Android
    @enrolls 黒产用群控脚本慢速请求,模拟真实用户,你怎么给 ip 限速?
    edis0n0
        12
    edis0n0  
       59 天前
    你知道现在大学生劳动力有多便宜吗? 2captcha 之类给爬虫打验证码服务都不用 AI 用大学生了,官网介绍 All captchas are solved by workers, that's why 2captcha can bypass all humanly readable types of captchas. 你防的了机器我就上更便宜的真人
    xmrvabc2
        13
    xmrvabc2  
       52 天前
    你不是转了安全岗位吗,又做回开发了,还是开发香哈
    enrolls
        14
    enrolls  
       43 天前 via iPhone
    @godblessumilk 基于你的回复,反问你,你怎么知道 TA 不是真实用户?是一堆群控?

    真要干这点的话,复杂得很,基于你的业务来思考,不是黑哥的成本问题,是你的投产比问题。

    来点简单点解决:接入 cloudflare 使用 challenge ,manage challenge ;参考知乎简单的拦截是怎么做的?

    来点你都要怀疑要不要做的:click trap 针对 fuzz ;参考微博,小红书,淘宝,知乎是怎么做的(跟用户系统设计有关),我理解下,大厂都有一个共性,微博最显著。支付宝也有,也是用在判断上。
    godblessumilk
        15
    godblessumilk  
    OP
       42 天前
    @xmrvabc2 现在在做安全开发,紧张又刺激,开发冷兵器呢
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   4389 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 07:23 · PVG 15:23 · LAX 00:23 · JFK 03:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.