由于保密协议,写了个类似的案例记录下。
网站再注册时都需要防止恶意注册程序来违规注册,当前流行的就是验证码。道高一尺魔高一丈,现在的验证码技术在很多情况下都是比较好破解掉的。于是有了变化的答题验证的功能,由此引发了一个线上bug。
后台用户需要将题库存入数据库中,然后随机抽提给注册用户使用。由于录入题库时没有队答案进行trim(),而注册页面用户填入的答案是被trim()过的,后台操作人员将答案后面不小心录入回车导致此答题功能完全无法使用。
虽然问题原因很简单,看上去微不足道,实际却带来了巨大的损失。平时需要注意下子,用来匹配的字符窜在存入数据库时需要做trim()处理。当然保险起见,最好在判断页面再次将两边字符窜都trim()更保险。