美文网首页移动开发
URIError-malformed 一次排坑记录

URIError-malformed 一次排坑记录

作者: 张大壮呐 | 来源:发表于2019-03-01 18:20 被阅读0次

    现象:一个前端页面访问服务端接口,同一个接口会访问几十次或者上百次。

    排错过程:

    1.发现前端有个判断逻辑,服务端接口响应后发生异常就尝试重新发起请求。

    2.发现异常来源于解密响应报文的逻辑中,调用了des3.js的方法,是库中方法在decode过程报 URIError-malformed 异常。

    3.通过这个错误反复排查入参是否编码问题后,无果

    4.通过前端进des3.js的方法前打日志,出des3前打日志,发现出去前有部分请求的报文是乱码的。而且是随机,时好时坏。

    5.把有乱码前的密文,手写解密程序进行解密。复现问题。

    6.由于之前请求服务端一个请求需要一个随机key做签名,此时通过其他key进行解密,若干key中有一个是可以的。

    7.问题到这里基本清楚,就是key和请求的对应关系搞乱了。

    8.由于前段请求服务端是并发的,这里的key做为了一个全局参数。所以解密的时候哪一个请求最先返回,则会先取用公用的key进行解密。

    根因:前端并发请求服务端,key参数没有考虑并发。之所以报标题的问题,是由于key的原因解密失败成乱码。

    相关文章

      网友评论

        本文标题:URIError-malformed 一次排坑记录

        本文链接:https://www.haomeiwen.com/subject/wrbgyqtx.html