时间:2021-07-01 10:21:17 帮助过:25人阅读
继续说故事,某一天产品经理策划了一个方案,要搞一个促销。一个用户最多只能用一次鸡蛋优惠券。
开发人员需要对系统进行修改和调整。
让我们脑补一下,传统行业搞互联网电商的场景:
产品经理:赶快改,赶快上,赶快搞活动
运维经理:版本升级,提交上线评估报告,风险测试报告,系统测试报告,各位负责领导签字文件……;
开发人员A:靠,老子一早从9点干到晚上9点,还要老子去写那么多报告,让我想想有那么好办法…
开发人员B:在html表单上做限制,买过一次以后就禁用;
开发人员A:这办法不错,只要修改html,不算版本升级;
开发经理:兄弟们,赶紧开发;
… (使用html进行元素禁用)
测试人员:测试好了,一个人只能用一次鸡蛋优惠券,用完就灰色了,我再也用不了了,达到目标。
开发经理:提交上线
…
使用了一次以后的页面,确认购买的按钮灰掉了。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>看好你的门-阿饭同学
无论我怎么点,这个按钮都是灰色的。
诶呀,一不小心,又被攻击了…
1、 最简单的方法,比如用代理服务器拦截之后修改,直接让disabled=false 或者去掉这个属性;
2、 比如我们把这个页面保持下来,用审查元素功能找到 :disabled=true 修改元素属性,去掉这写代码,这样验证就失效了,再多用几次鸡蛋优惠券玩玩吧。。
1、 元素禁用好像现在用的不是很多,不过只要服务器采取了和客户端相同甚至更加严格的确认机制,这种应用就比较难被攻击;
2、 因为用户的输入可能带来各种各样的问题,这种方法能够将用户无意中的错误过滤掉,能够减少网络流量和服务器负担,因此,这种方法该用还是要用。