大们,如何动态生成 http 的请求路径 ??为了防产刷网站接口(不想买验证码服务,穷 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
godblessumilk
V2EX    信息安全

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

  •  
  •   godblessumilk 2023-01-14 13:37:08 +08:00 via Android 2187 次点击
    这是一个创建于 1002 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,验证码服务让我太感动了,他不止抢钱(调用一次 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  
       2023-01-14 14:43:25 +08:00
    那不有逆向你前端 js 的操作,不应该从限流接口来做处理吗,针对接口进行熔断或者降级
    rev1si0n
        2
    rev1si0n  
       2023-01-14 15:54:09 +08:00
    简单说一句:不可能的事情,总有办法可以刷你。
    godblessumilk
        3
    godblessumilk  
    OP
       2023-01-14 16:07:12 +08:00 via Android
    @rev1si0n 只要成本够高,收益够低,铲就盯不上我
    tomato96
        4
    tomato96  
       2023-01-14 17:32:19 +08:00
    post body 带动态参数(比如 token )在我看来就像是数学题里的未知数 xyz ,如果 token 是一个参数,那加上 http request url 就是第二个参数,验证码就是第三个参数。

    为什么非得用 URL 做第二个参数呢,body 或者 query 带上一个随机生成的、每个用户都不同的 code 标识不就行了?吗?
    enrolls
        5
    enrolls  
       2023-01-14 20:47:41 +08:00 via iPhone   1
    参照微信,url 加密,解决下一个地址问题; ip 限流解决速度问题。还有什么问题?
    join23
        6
    join23  
       2023-01-15 08:31:59 +08:00 via Android
    根本不是问题啊?私人站还是公司的?性质是易招黑客体质?有巨量机密?别意淫了,你想什么方法都可以,但是要以事实为依据,私人的,自己爱怎么设计都行,反正提高自己水平。公司的,你提出实际问题后由公司决策,担心钱,根本没有办法解决。没有大仇的,黑客不可能盯上你。
    IvanLi127
        7
    IvanLi127  
       2023-01-15 09:39:40 +08:00 via Android
    没必要,url 路径和查询参数与请求体一样,都是入参,加 token 效果是一样的。动态变化的 url 只能让他们找你接口麻烦一点点。。。多搞几次也能发现规律。。。要是他直接模拟点击,接口啥样都无所谓。。。所以建议在前面套低成本的人机验证,减少高成本人机验证被刷的风险
    Herry001
        8
    Herry001  
       2023-01-15 12:11:38 +08:00
    这玩意有啥用……你要不研究下 Selenium ?不用验证码这货基本横着走。
    公司项目找公司报销验证码,个人项目上 google recaptcha ,免费足够。
    godblessumilk
        9
    godblessumilk  
    OP
       2023-01-15 13:18:22 +08:00 via Android
    @Herry001 Selenium 搞群控脚本是吧,很刑噢
    godblessumilk
        10
    godblessumilk  
    OP
       2023-01-15 13:28:46 +08:00 via Android
    @IvanLi127 起码模拟真实用户操作这一步,客成本就已经上去了。

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

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

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

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

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

    来点你都要怀疑要不要做的:click trap 针对 fuzz ;参考微博,小红书,淘宝,知乎是怎么做的(跟用户系统设计有关),我理解下,大厂都有一个共性,微博最显著。支付宝也有,也是用在判断上。
    godblessumilk
        15
    godblessumilk  
    OP
       2023-02-08 15:49:47 +08:00
    @xmrvabc2 现在在做安全开发,紧张又刺激,开发冷兵器呢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2972 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 00:32 PVG 08:32 LAX 17:32 JFK 20:32
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86