V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
guchengzhihuan
V2EX  ›  程序员

如何解决接口脱离浏览器环境,调用报错。

  •  
  •   guchengzhihuan · 2023-10-13 10:10:40 +08:00 · 873 次点击
    这是一个创建于 393 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问大佬一个问题,

    https://shopee.com.my/product/330222837/23337213311

    这个接口,在请求头上有加密参数 ,每次请求会实时计算。

    /api/v4/pdp/get_pc?shop_id=14682573&item_id=18580722560

    重点是,你把所有请求头拷贝出来,不管是 postman 还是脚本请求,接口会报错。 但是用浏览器的 fech 重发,只会给一次数据。

    请问怎么解决,后端是如何判断,执行环境非浏览器的?

    codehz
        1
    codehz  
       2023-10-13 10:42:34 +08:00
    每次 token 都是一次性的呗,需要 js 逆向出算法才能破解
    duan602728596
        2
    duan602728596  
       2023-10-13 11:21:39 +08:00
    有些只能用 CDP 协议来绕过了,就比如我以前研究过一个 api 的 token 算法。
    开始的时候,用 nodejs 就可以。
    后面迭代,会判断是否是浏览器环境,只能被迫上 playwright 。不过打开的是本地 html 文件。
    再后来连无头浏览器都不好使了,只能被迫上 CDP ,然后在真实的浏览器环境里计算了。
    实在是懒得再折腾了,研究好几天,人家一升级就白研究了。
    saberlove
        3
    saberlove  
       2023-10-13 15:50:55 +08:00
    这个玩意不是用来防止重放的么?
    guchengzhihuan
        4
    guchengzhihuan  
    OP
       358 天前
    没人知道吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1453 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 17:23 · PVG 01:23 · LAX 09:23 · JFK 12:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.