作者ahousi (Crunch)
看板Ajax
標題[問題] 如何防止網站瀏覽者使用javascript改表單數值
時間Sun Oct 2 10:41:37 2011
最近發現有可以使用javascript來實現autofill的功能
例如在瀏覽列輸入
javascript:var values = ["xxx", "ooo"];
$("input").each(function(i){ $(this).val(values[i]); });
他就能幫你填上帳號密碼~
遇到的最主要的問題是這個會改到我的表單按鈕,
原本按鈕可能是"登入",使用這個後,按鈕的value值就被刪掉了...
請問有方法可以防止嗎?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.117.206
1F:→ kerash:你到底是要防止使用者改表單還是你不想去改到表單.. 10/02 11:07
2F:→ ahousi:是希望就算他輸入js autofill 也不能改任何值 10/02 12:00
3F:→ mesak:只能寫TIMEOUT 自己驗證,不然就是綁 KEYPRESS跟 CHANGE 10/02 12:35
4F:→ mesak:用一個全域變數 紀錄username的值 KEYPRESS把值丟到username 10/02 12:37
5F:→ mesak:change 把任何值 = username 10/02 12:38
6F:推 No:你防這個做什麼? 看起來沒有必要耶 10/02 12:43
8F:推 B9: 把 input type="submit" 改成 button 可以治標不治本 10/02 13:49
9F:→ ahousi:謝謝大家的方法! 最後用了插入隱藏欄位+用<button>標籤! 10/02 14:11
10F:→ ahousi:還有m大提供的KeyPress輸入法! 10/02 14:13
11F:→ knives:這個根本沒有必要吧,我直接用curl送post出去不就好了 10/02 17:20
12F:→ knives:最重要的還是後台資料檢查,感覺上龜毛老闆的無腦要求 10/02 17:22
13F:推 mesak:剛剛No 試了還是可以改 XD KEYPRESS那邊要多層檢查一點 10/02 19:44
14F:→ cowbaying:用後台檢查就好,JS只要花點時間都可以破解 10/02 21:03
15F:推 carlcarl:後端檢查比較重要 10/03 04:46
16F:推 linhomeyeu:到底防這個可以幹嘛XD 直接送http過去就結束了 10/03 18:13
17F:→ knives:通常會有這種要求,多半是上面不懂原理在要求的 10/04 16:50