所有的Web应用程序通过实现各种功能。从根本上讲,
深圳建站公司用编程语言的编写代码就是把一个复杂的进程分解成一些非常简单而又相互独立的逻辑步骤。Web应用程序的的逻辑缺陷各不相同,它们包括代码中的简单错误,以及几种应用程序和谐组件等等复杂的漏洞。有时候,这些漏洞很明显,有时便很难发现,能够避开最为严格的代码审查与渗透测试。
如果有任何价格或其他敏感价值需要根据用户控制的数据或操作作确定的标准进行调整,首先应了解营业厅程序使用程序使用的算法以需要调整的逻辑。使应用程序进行的调整与
深圳网站设计开发者最初设定的标准相互矛盾。在应用折扣从购物陈中取出商品是比较普遍的例子,下面我们在一家软件供应商的零售应用程序中通过遇到的这种逻辑缺陷。
1.功能
应用程序允许用户订购软件产品,如果购买的商品达到一定的数量,就有资格获得大幅折扣。比如,在用户分别购买一件防毒解决方案、个人防火墙与放垃圾邮件软件,它就可以获得25%的折扣。
2.假设
当用户在购物车中增加一件商品时,应用程序就使用各种规则决定他选择购买的产品是否让他有资格获得任何折扣。如果用户可以获得折扣,应用程序就根据折扣率调整购物车中的商品价格。开发者认为用户只能购买捆绑销售的商品才能有优惠。
3.攻击方法
开发者的家属存在想到明显的缺陷,因此为该假设忽略了一个事实,即用户向购物车添加商品后可能会在将其中从移走。狡猾的用户可能会往购物车添加供应商的大量商品,以获得最大可能的优惠与折扣。