破解网页不可点击的按钮方法

一个button在网页里,实现不可点击比较传统的方法是disabled=true,假设这个网页的按钮有id,那最简单的方法就是直接重置它的disabled属性。

使用ie8拿百度的首页来做例子:

默认状态下,“百度一下”这个按钮是可以点击的。然后按一下F12,打开开发人员工具,找到这个按钮的html代码:

<input class="bg s_btn" id="su" type="submit" jQuery110203326614943776241="69" value="百度一下"/>
知道了id是su,那么写一行代码:

javascript:alert(document.getElementById("su").disabled=true)
然后直接把这行代码,拷贝到地址栏,点击回车,看看效果:


弹了一个框出来的同时,“百度一下”的按钮也置为不可点击了!

同理,把一个不可点击的按钮置为可以点击把true改为false即可。

其实,还有一种更简便的方法,就是F12以后,直接修改源代码即可。比如下图(京东的),直接用鼠标在class="btn disabled"位置点击一下,然后把这个class删除,再回到页面,这个按钮就可以点击了。


因此,我们在实现这种按钮的时候,必须防止黑客采用这种方法把你的按钮点击了。比如某种不能卖的商品被买的便损失严重。

看看京东是怎么实现的(http://item.jd.com/10487698.html):


复制是只复制该行,复制innerhtml是复制包含的元素,复制outerhtml可把这个元素和子元素复制出来:

<DIV id=choose-btn-append class="btn disabled" clstag="shangpin|keycount|bookitemnew|1302">
<A id=InitCartUrl class=btn-append title=商品已无货 οnclick="" href="#none" jQuery1426306193515="92">
加入购物车<B></B></A> </DIV>

看见它onclick里为空,这样就比较安全了。


总结:

也就是说这种方法可以修改页面里的任何数据,比如金额是100元,这种数据是放在前端传到后台的,我可以修改为1元,然后点击购买。

所以写代码时必须注意,敏感数据不要放在前端,后端对于数据也要有必要的校验。


出自ouyida3的csdn blog

2015.3.14


微信小程序提供了日期时间选择器组件`picker`和日历组件`calendar`,但如果需要自定义样式或者功能,可以考虑封装一个日期时间组件。 以下是一个简单的日期时间组件的封装示例: 1. 在`/components`目录下创建一个`datetime-picker`文件夹,创建`datetime-picker.wxml`、`datetime-picker.wxss`、`datetime-picker.js`和`datetime-picker.json`四个文件。 2. 在`datetime-picker.json`中定义组件的属性: ```json { "component": true, "usingComponents": {}, "properties": { "startDate": { "type": String, "value": "2023-02-15", }, "endDate": { "type": String, "value": "2023-02-20", }, "startTime": { "type": String, "value": "00:00", }, "endTime": { "type": String, "value": "23:59", }, "defaultDate": { "type": String, "value": "", }, "defaultTime": { "type": String, "value": "", }, "format": { "type": String, "value": "datetime", }, "showTime": { "type": Boolean, "value": true, }, "showDate": { "type": Boolean, "value": true, }, "startPlaceholder": { "type": String, "value": "开始时间", }, "endPlaceholder": { "type": String, "value": "结束时间", }, "bind:change": { "type": Function, "value": "", } }, "options": { "styleIsolation": "apply-shared" } } ``` 上述属性中: - `startDate`和`endDate`为日期范围,用于限制可选日期的范围; - `startTime`和`endTime`为时间范围,用于限制可选时间的范围; - `defaultDate`和`defaultTime`为默认值; - `format`为显示格式,支持`datetime`、`date`和`time`三种格式; - `showTime`和`showDate`分别控制是否显示时间和日期选择器; - `startPlaceholder`和`endPlaceholder`为开始时间和结束时间的占位符; - `bind:change`为选择器值变化时的回调函数。 3. 在`datetime-picker.wxml`中定义选择器组件: ```html <view class="datetime-picker"> <view wx:if="{{showDate}}" class="datetime-picker-item"> <picker mode="date" start="{{startDate}}" end="{{endDate}}" value="{{selectedDate}}" bindchange="onDateChange"> <view class="datetime-picker-value"> <text wx:if="{{selectedDate}}">{{selectedDate}}</text> <text wx:else>{{startPlaceholder}}</text> </view> </picker> </view> <view wx:if="{{showTime}}" class="datetime-picker-item"> <picker mode="time" start="{{startTime}}" end="{{endTime}}" value="{{selectedTime}}" bindchange="onTimeChange"> <view class="datetime-picker-value"> <text wx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值