出事了出事了😭😭😭
晚上吃完饭回家,客户突然联系,服务后台有异常请求,而且数据看起来不应该是该功能能传递的类型。(´;д;`)
而且这种数据请求的很诡异,对应接口的使用页面只有一个操作按钮,不应该是 bug,看起来很像是故意恶搞,抓包后修改接口数据再请求
随后通知用户,立即停服。因为项目目前是小范围试用,暂时停服影响不大
先检查大模型 key 全部准确,排除掉 key 配置错误导致的问题 ✅
查服务器日志,按照后台异常数据的时间,精确到 21 点 20 分 56 秒 ✅
但接入大模型的日志只记录了该次请求的 resp,没记录账户信息、ip 信息 ❌
然后查询系统数据库,查找该记录绑定的用户信息,才想起来该接口是试用体验接口,没有用户 ❌
早前考虑到有人可能会恶意刷接口,所以做了 ip 和设备号的限流,因为是用 ip作为 key 记录的数据,所以尝试从 redis 中获取 ip 信息。
但因为忘记了服务器使用的 nginx 作为转发服务,是无法直接通过request.getRemoteAddr()获取到真实 ip,只会获取到 nginx 本身的 ip,即localhost。所以 ❌
随后放弃查找,向客户认错,主动背锅!(挨打要立正,态度要摆正!) ❌❌❌
内心 os:别骂我,我心眼小,挨骂晚上睡不着,明天还怎么改 bug 😭😭😭
记录了明天要修改的 todolist 后打开了吞噬星空,罗峰,我来啦!看到一半,突然想起,nginx 有他么的 access访问日志啊!!! 我真是个呆逼
然后就查到了这个坏人的 ip 地址!ヽ(`⌒´メ)ノ 接受制裁吧!
直接加个手机号短信验证,让你无所遁形!请求接口我再来个签名验证!做好日志记录,做好试用数据留存!
本文作者:dancoder
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!