从代码层面考虑,同一个过程的代码执行应该只可能得到一个结果,上面我的操作过程中应该不会涉及到系统更新的问题,那就是说,在这里实际上应该是执行了两个方法过程。或者说,有两个计算退票款的方法在执行中,第一次执行的是错误的方法,第二次执行了正确的方法,那就进一步说明,这里应该有一个判断在执行,确定到底执行哪一个退票方法。
到这里,我们已经无法继续分析,因为下一步的分析应该是去检查代码中对应的部分,进行bug的修正和分析了。
看完本节是不是有一种想要去查一下过去退票和改签的退款信息的冲动呢?
买票的判断逻辑缺陷
因为订票订不到从北京到宁德的,于是抢到了一张北京到温州南。
然后就想是否可以直接买一下温州南到宁德的车票,查询的结果是这趟车从温州南到宁德还有很多座位,于是下单,最后提示如下图所示。
也就是说,在12306的分析中是用身份证号码和车次作为关键词进行重复订票查询的,并没有增加车上的行程作为判断条件,因此算是一个判断条件缺失,造成了上面这种本来应该可以购买,因为并不违背铁道部的买票规定的票,却实际上无法购买。