fu9852531 发表于 2019-11-26 16:02:09

某招聘网站__zp_stoken__ 参数解析


个人需求爬取一些招聘数据


发现某B直聘 网站获取某职位列表页的数据时,cookie中,必须生成   __zp_stoken__  参数的 name value


才能正确访问到列表页
function ABC() {    this['i0'] = 0x0;    this['d'] = ;}
通过调用ABC对象内的_0x2ab7('0x60')方法的 z 方法(每天都不一样)


z方法的参数_0xc894dc: 访问某个链接可以获取到(服务端生成)


z方法的参数_0x32478b: 时间戳
javascript ABC['z'] = function(_0xc894dc, _0x32478b)
 {
     var _0x1346ff = { 
            'UzfvS': function(_0x1de77d, _0x19cf65) { 
                       return _0x1de77d == _0x19cf65;       
                        },
             'sOKer': _0x2ab7('0x61'),
             'EFaah': _0x2ab7('0x62'),
             'HXECB': function(_0x10a393, _0xb190d9, _0x2f7553) {
                         return _0x10a393(_0xb190d9, _0x2f7553);        
                         },
             'XyGFz': function(_0x2e2d1b, _0x2802ea) { 
                        return _0x2e2d1b + _0x2802ea;        
                        }    
      };    
   try {
          if (document && _0x1346ff(_0x1346ff, typeof document)) {
              z = _0xc894dc;
              t = _0x32478b;
          } else {
              z = _0x1346ff;
          }    
       } catch (_0x53e803) {
               z = _0x1346ff;
       }    
    return _0x1346ff(zg_, this, _0x1346ff(_0xc894dc, 0xb)); 
    }
最后的return 就是返回的__zp_token__生成值
javascript return _0x1346ff(zg_, this, _0x1346ff(_0xc894dc, 0xb));
中间调试的过程就是各种函数调来调去,补充函数就行了,因为时间太久,细节的坑有些忘记了




b直聘的工程师应该是借鉴了sojson 站的js混淆加密方法(obfuscator),本人愚见,如有失误,请大佬斧正.




如果有最新的知识,请在评论区交流.

zengyd 发表于 2019-11-27 10:03:02

修正下排版,大兄弟,你这种格式,你自己看的不脑疼?

葫芦娃他爷爷啊 发表于 2019-11-27 10:54:32

排版是编辑框的问题吧,得俩回车...

gzwgq222 发表于 2019-12-1 12:07:19

用无头浏览器如 puppeteer 可以不用破解 js 混淆加密,让某B检测不出来就可以进去了,刚弄出来了

何老弟 发表于 2019-12-4 16:15:45

这网站的js不难,就是跑起来有稍慢,用无头也是可以的
页: [1]
查看完整版本: 某招聘网站__zp_stoken__ 参数解析