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

第1篇 引子

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

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

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

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

并查看了Check_Form函數(shù),函數(shù)相當(dāng)長,這里就不全列舉出來了,只貼幾行:

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

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

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

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

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

這個故事告訴我們——永遠(yuǎn)不要在客戶端做安全檢驗(yàn)!

主站蜘蛛池模板: 岱山县| 太康县| 方山县| 望谟县| 宝坻区| 迁西县| 通州市| 大庆市| 天峻县| 莎车县| 米脂县| 罗平县| 靖宇县| 本溪市| 乾安县| 凌云县| 长岛县| 常山县| 观塘区| 宽城| 兴文县| 西昌市| 永康市| 宁夏| 邹城市| 龙口市| 和田市| 黔江区| 唐山市| 庄河市| 滨州市| 班玛县| 秀山| 余江县| 镇雄县| 丹阳市| 郁南县| 临夏市| 集安市| 新和县| 依安县|