今天发现一个bug:api中使用了“-”短横线,结果api无法正常访问。
排查下来是这样,我们的api不会直接访问,会在内部再做一次路由,路由的时候需要根据设定的规则,对传入的api路径进行匹配。
匹配的时候使用的是正则表达式,没有使用普通的字符串匹配。以前一直很正常,因为api路径中没有出现类似“-”这样对于正则匹配而言是特殊字符的内容。这次“-”被当成了特殊字符,所以当然就匹配不到,也就无法正常路由、访问到了。
对策:
- 使用字符串匹配。
- 对这类字符做特殊处理。
我们这里选用的方案是,改用字符串匹配。
小结:
这是很严重的问题,会导致大量类似的api无法访问,因此需要特别留意。
网友评论