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

请问这个 POST 请求里面的 sign 可能是如何构成的?

  •  
  •   xiaopanzi · 2022-05-27 22:48:39 +08:00 · 1458 次点击
    这是一个创建于 903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我试着通过脚本在当当网( https://login.dangdang.com/ )判断一个手机号码是否已经注册过,下面的浏览器发送的参数:

    t: 1653661422695
    ct: pc
    permanent_id: 20220527222303660356159866560768420
    requestId: 2205272223209660Q3KN8O_ab63
    mobile_phone: 13162072077
    sign: 01ZJ+f8vDhYyMogVCLJl7e9kMAS7RfHsqPDz5UkUrMgF1Ah2r2hW+XOBNYnVooLW
    

    其中t是时间戳,ct是客户端类型。permanent_id的含义不清楚,但可能和 expire 时间有关;requestId可能是由时间字符串加上一些随机数构成。

    多次调整mobile_phone,发现permanent_idrequestId不变,但其签名sign会发生改变。按照爬虫的设计,签名应该是对请求数据进行某种加密。

    请问大家有思路吗?

    第 1 条附言  ·  2022-05-28 10:45:50 +08:00
    多谢各位帮助,前端技术渣渣,之前还没有搞过 JS 的调试,现在明白了。再次多谢各位!
    10 条回复    2022-05-28 10:43:06 +08:00
    F12
        1
    F12  
       2022-05-27 22:57:56 +08:00
    能有什么思路,分析源码呗
    xiaopanzi
        2
    xiaopanzi  
    OP
       2022-05-27 23:04:24 +08:00
    @F12 But, 当当的源码怎么在我手里?可能我问的不清楚:通过上面 sign 的特征(比如长度),它可能是通过如何加密方式 /算法实现的?
    viiber
        3
    viiber  
       2022-05-27 23:20:58 +08:00 via Android
    基本上很难看出来,除非是恰好(比如说 ef 之类的开头看多了就会知道是 base64 加密过的),这种说实话我也没头绪,写爬虫的时候一般就用 selenium 来规避这些参数的模拟了。
    des
        4
    des  
       2022-05-27 23:22:15 +08:00 via iPhone
    前端 js 不是直接看的到吗,自己扒代码
    cpstar
        5
    cpstar  
       2022-05-28 00:22:58 +08:00
    OP 2# 你看他加载的 JS 库,基本就能猜出用什么加密,其实也不能算加密,也就是 MD5 、SHA1 、SHA256 之类的算摘要
    krapnik
        6
    krapnik  
       2022-05-28 00:49:12 +08:00
    icy37785
        7
    icy37785  
       2022-05-28 02:58:01 +08:00 via iPhone
    @xiaopanzi #2 前端代码直接 js 里就看得到呀,这前端加密的直接扒呗
    xiaopanzi
        8
    xiaopanzi  
    OP
       2022-05-28 10:04:13 +08:00
    @icy37785 谢谢!
    oneisall8955
        9
    oneisall8955  
       2022-05-28 10:33:39 +08:00 via Android
    @xiaopanzi 谢谢 6 楼呀,已经截出图了。很有是参数 key value 按照 key 升值排序进行 md5 hash ,有个 rankey 作为密钥可能是先从后端拿的,session 范围有效的值
    xiaopanzi
        10
    xiaopanzi  
    OP
       2022-05-28 10:43:06 +08:00
    @icy37785 谢谢。
    @krapnik 谢谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2879 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:48 · PVG 10:48 · LAX 18:48 · JFK 21:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.