官术网_书友最值得收藏!

第1篇 引子

故事一:家有一IT,如有一寶

我的愛人是做銷售的,每天晚上回家都要上網填寫一個系統,若不填的話會扣獎金。有一天,她還是照常填寫好了,等要提交的時候,忽然出現一個對話框,如下:

可問題是,她仔細地檢查了填寫的日期,并沒錯,遂求助于我。我看了看,第一反應就是:這個提交是在客戶端做校驗的,那是相當不可靠的,我一定能繞過去這個驗證而正確提交。于是找到了這個按鈕的那段HTML代碼:

<input name="btn_SaveMsg" class="button" id="btn_SaveMsg" style="width: 110px;" onclick="return Check_Form();" type="submit" value="保存"/>

并查看了Check_Form函數,函數相當長,這里就不全列舉出來了,只貼幾行:

if(document.getElementById("txt_Evalueation_Date").value>returndate) {
        alert('前半天不能大于當天!');
document.getElementById("txt_Evalueation_Date").focus();
        return false;
}
…
return true;

但我們知道,只要是客戶端進行校驗的,就不靠譜。于是我用Chrome打開了這個頁面,然后在Console面板上執行了下面的命令:

MainPanel.document.getElementById("btn_SaveMsg").onclick="return true;"
MainPanel.document.getElementById("btn_SaveMsg").click();

這里做簡單的介紹,MainPanel是Frame的名字,原始頁面包括了好幾個Frame,然后根據id取得保存按鈕這個元素,并且將onclick函數改成return true,即驗證永遠通過,這樣就可以跳過原來客戶端的Check_Form函數中那么多的return false的情況了,最后調用保存按鈕的click方法進行提交。

Bingo!提交通過!于是本人也獲得了一句贊語:家有一IT,如有一寶。

這個故事告訴我們——永遠不要在客戶端做安全檢驗!

主站蜘蛛池模板: 铅山县| 华宁县| 蕲春县| 深水埗区| 玉屏| 交城县| 淮安市| 彰化县| 通江县| 馆陶县| 灵山县| 绍兴县| 安塞县| 留坝县| 略阳县| 武宁县| 金川县| 公主岭市| 元氏县| 克什克腾旗| 新兴县| 娄底市| 蒲江县| 方山县| 高淳县| 保定市| 芦溪县| 沅陵县| 安图县| 越西县| 瑞金市| 惠东县| 密山市| 称多县| 山西省| 上饶县| 广南县| 扬中市| 青河县| 五莲县| 鲁甸县|