欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

看好你的门-客户端传数据(10)-不安全的HTML禁用元素_html/css_WEB-ITnose

程序员文章站 2022-05-21 14:13:25
...
首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考。

1、 简单说明

继续说故事,某一天产品经理策划了一个方案,要搞一个促销。一个用户最多只能用一次鸡蛋优惠券。
开发人员需要对系统进行修改和调整。
让我们脑补一下,传统行业搞互联网电商的场景:
产品经理:赶快改,赶快上,赶快搞活动
运维经理:版本升级,提交上线评估报告,风险测试报告,系统测试报告,各位负责领导签字文件……;
开发人员A:靠,老子一早从9点干到晚上9点,还要老子去写那么多报告,让我想想有那么好办法…
开发人员B:在html表单上做限制,买过一次以后就禁用;
开发人员A:这办法不错,只要修改html,不算版本升级;
开发经理:兄弟们,赶紧开发;
… (使用html进行元素禁用)
测试人员:测试好了,一个人只能用一次鸡蛋优惠券,用完就灰色了,我再也用不了了,达到目标。
开发经理:提交上线

2、 利用html进行元素禁用

使用了一次以后的页面,确认购买的按钮灰掉了。

看好你的门-阿饭同学 
商品:鸡蛋 优惠券,只能使用一次
您已经使用一次

无论我怎么点,这个按钮都是灰色的。

3、 被攻击

诶呀,一不小心,又被攻击了…
1、 最简单的方法,比如用代理服务器拦截之后修改,直接让disabled=false 或者去掉这个属性;
2、 比如我们把这个页面保持下来,用审查元素功能找到 :disabled=true 修改元素属性,去掉这写代码,这样验证就失效了,再多用几次鸡蛋优惠券玩玩吧。。

4、 思考html上的元素禁用

1、 元素禁用好像现在用的不是很多,不过只要服务器采取了和客户端相同甚至更加严格的确认机制,这种应用就比较难被攻击;
2、 因为用户的输入可能带来各种各样的问题,这种方法能够将用户无意中的错误过滤掉,能够减少网络流量和服务器负担,因此,这种方法该用还是要用。