偶然的错误发现一个bug,引人深思的null

今天测接口的时候 很偶然的发现一个bug,先交代下游戏接口
游戏战斗时会发送uid和登录token回去,这时候会返回一个参数叫storykey
发送uid,token,返回storykey,战斗结果加上storykey再发回去,这是一次战斗流程,storykey只能被使用一次。
然后我写代码的时候不小心多加了个引号,导致uid多了个引号,这样token和uid就对不起来了,服务器提示token错误,然后再发战斗结果和storykey(这个时候为null)回去,竟然返回了正确的战斗结果,更可怕的是,这个接口可以重复的使用,也就是达到重复战斗的目的

bug原理:

没获取storykey 然后storykey就等于Null。  用null   然后md5加密一个32位字符串     同样 因为获取storykey时候 key is wrong.所以服务器这边的storykey没有。 那也是null. 然后我拿一个null拼上战斗结果 加密。。  正好等于发过来的。   然后把storykey删除以后,下次发过来还是null  所以还能提交战斗。

时间: 2024-11-15 22:02:20

偶然的错误发现一个bug,引人深思的null的相关文章

从偶然的机会发现一个mysql特性到wooyun waf绕过题

MayIKissYou | 2015-06-19 12:00 最近在测试的时候,偶然的机会发现了一个mysql的特性, 为啥是偶然的机会呢..... 一次测试的过程中我在mysql的console下做了如下的操作: 看出些什么了么? 我当时发现报错的时候例如-+{等符号 报错的时候提示的是''(双引号里没东西),但是如select后面添加1 a等内容的时候报的是 selecta,select1等等. 想到共性了么,-+{等等内容是能够直接添加到select后面的,知其那那个sql总结的帖子里有,

2016最后一贴,终于调通一个测试示例,并发现一个BUG???

真的难点在于第一次调通.纠结五天,终于搞出界面. 也发现了一个书上代码,编辑用户时死活不通的情况,我将Links去了,改在data里,我X,,全OK了.. 原来的代码: onAdd: function(button, e, options){ this.createDialog(null); }, onEdit: function(button, e, options){ var me = this, records = me.getRecordsSelected(); if(records[0

发现一个BUG,if判断语句在判断数组里面的元素数量时会短路

在写一个猜图的游戏时,遇到一个很有意思的BUG,具体表现如下: 如果时单纯的判断数组里面元素的数量时,它是正常工作的,比如这里array里面的元素数量为3,所以它执行下一句: 这里的array1的元素数量为0,所以它执行else语句,也正常: 但是这里,-1明明比array的count小,这里count为3,它还是执行了下一句: 这里一样,-1比count小,这里count为0,它还有执行了下一句: 这是苹果的bug吗?..........

在练习使用nio时,无意中好像发现一个bug

就是我在看netty权威指南时,里面有个TimeServer的例子,然后按着上面的写了,在用到Nio时,我用客户端向服务端发送字符串"date"."d"."da"."dat"等字符串时,发送不成功.然而发送其它字符时会成功.然后用netty时也是如此 下面是我的例子,请高手解答 TimeServer: 1 package com.szc.nio; 2 3 import java.io.IOException; 4 5 /**

发现一个FreeSWITCH bug

在研究FreeSWITCH视频会议的混屏问题时候发现一个bug. 已提交jira. 附上代码,问题很明显,不解释 ============================================= version: fs1.6.9 OS: debian 8 file: mod_conference.c code: ***************************************************** if (scale_h264_canvas_width < 320

Universal-Image-Loader的一个BUG

使用UIL的内置圆角图片的功能时,发现一个BUG,就是它会拉伸图片,造成图片失真.费了一下午的功夫,重写了RoundedBitmapDisplayer,总算解决这个问题. 代码如下: public class RoundedBitmapDisplayer implements BitmapDisplayer { protected final int cornerRadius; protected final int margin; public RoundedBitmapDisplayer(i

关于vs2013调试的偶然错误发现与总结(vs2013的承载进程)---ShinePans

当项目的属性选择为 启用 vs2013承载进程 或出现一下错误: 尝试运行项目时出错:未能加载文件或程序集"GroupBoxTest" 或它的某一个依赖项.给定程序集名称"..." 或它的某一个依赖项,给定程序集名称或基本代码无效.(异常来自 HRESULT:0x80131047) 这是由于启用了 vs 2013的承载项进程 关于承载进程的好处:(vshost.exe) 启用承载进程可能会对某些 API 的调用产生影响. 在这些情况下,有必要禁用承载进程以返回正确的

发现C++Builder 2010集合类的一个BUG

今天用C++Builder 2010写一段小代码,用到了集合类,可集合运算结果怎么也不对,排除了其它原因,最后确定应该是集合类源代码的问题,下面是一段集合类的测试代码: enum TTest{tt0, tt15 = 15, tt16 = 16}; typedef Set<TTest, tt0, tt16> TTests; void __fastcall TForm1::Button1Click(TObject *Sender) { TTests t1 = TTests() << t

RDP 协议组件 X.224 在协议流中发现一个错误并且中断了客户端连接

如果你的服务器有如下错误: “RDP 协议组件 X.224 在协议流中发现一个错误并且中断了客户端连接.” 可能的有2种: 1:你试试能否能继续远程登陆,有可能你的远程登陆组件出现问题. 2:有人攻击你,使用暴力破解的方法登陆你的系统,导致系统拒绝服务. 一句话注意防贼!! 解决方法: 设置组策略=====>管理摸板=====>wndows组件====>终端服务!! 新的补充(比较狠的解决方法,呵呵.): 事件类型: 错误 事件来源: TermDD 描述: RDP 的 "DAT