收藏
回答

这两天发现大量ua带mpcrawler,但是scene为空的情况,从9号开始,请问官方大佬为什么啊?

从9号开始,发现突然scene为空的情况占了总数据的近30%,往常只不到1%,通过查询数据发现,ua中携带了mpcrawler,但是我们获取到的scene是空的,感觉好像是没有触发app的onshow似的,请问官方大佬,这是什么情况啊

回答关注问题邀请回答
收藏

2 个回答

  • 疯狂的小辣椒
    疯狂的小辣椒
    2020-05-17

    你好,麻烦提供下appid

    2020-05-17
    有用
    回复 3
    • 易慕南。
      易慕南。
      2020-05-18
      wx681b1e78da02dd16   感觉是因为没有触发app的onShow生命周期,我们是在这个生命周期中取参数中的scene作为后续的场景值,但是这个生命周期应该是没有触发,且通过nginx日志发现这些请求的ua中是带有mpcrawler爬虫标识的
      2020-05-18
      回复
    • 燚
      2020-05-18回复易慕南。
      最近没有变更这个逻辑,有没有可能是 onShow 里面有报错没有走到获取scene的逻辑?可以试试用 wx.getLaunchOptionsSync 来获取scene,如果scene 不对,可能是伪造成官方爬虫,可以通过以下方式来验证:(稍后更新到文档中)
      签名算法与小程序消息推送接口的签名算法一致。https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html#%E7%AC%AC%E4%BA%8C%E6%AD%A5%EF%BC%9A%E9%AA%8C%E8%AF%81%E6%B6%88%E6%81%AF%E7%9A%84%E7%A1%AE%E6%9D%A5%E8%87%AA%E5%BE%AE%E4%BF%A1%E6%9C%8D%E5%8A%A1%E5%99%A8
      参数在请求的header里设置,分别是:
      X-WXApp-Crawler-Timestamp
      X-WXApp-Crawler-Nonce
      X-WXApp-Crawler-Signature




      签名流程如下:
      1.将token、X-WXApp-Crawler-Timestamp、X-WXApp-Crawler-Nonce三个参数进行字典序排序
      2.将三个参数字符串拼接成一个字符串进行sha1加密
      3.开发者获得加密后的字符串可与X-WXApp-Crawler-Signature对比,标识该请求来源于微信
      2020-05-18
      回复
    • 易慕南。
      易慕南。
      2020-05-18回复
      我之前也怀疑过是不是onShow里面逻辑报错了,我去查询这些没采集到scene的请求的nginx日志,UA都是带crawler的,而这段时间采集逻辑没有新功能跟着上线,是9号出现,10号大批量出现的,所以就问下是不是爬虫机制有改动。
      谢谢啊,我们现在是同时使用scene和UA一起来剔除爬虫,等后期使用你上面提到的签名试试。
      2020-05-18
      回复
  • 易慕南。
    易慕南。
    2020-05-12

    自问自答,仅仅判断scene场景值是不是1129来界定是不是爬虫数据,是不是不太稳妥,是同时需要判断ua吗?期待官方回复

    2020-05-12
    有用
    回复 1
    • 易慕南。
      易慕南。
      2020-05-13
      假装有人回答,9号开始是不是增加了不同机制的爬虫?比如新的爬虫机制不会触发app的onShow
      2020-05-13
      回复
登录 后发表内容
问题标签