今天一个客户的程序出问题了,机器人将消息发送给了非管理员;
bug的原因是,程序设定了一个专门存储会话的变量,每次会话都会改变;但是由于某个特殊的时间节点,两个会话交叉使用了这个变量,以至于本来发给 A的消息错误的发给了B;
会话的对象要独立存储,如果不是共用的变量,尽量分开存储和调用;
将A消息发给B后,消息中附带的按钮没有增加管理员验证,导致B用户可以通过按钮操作一些管理员的权限;
解决办法:将机器人的会话数据独立存放,对按钮增加权限控制;