[請益] 避免user使用firebug等工具修改html

作者: commenbear (commenbear)   2015-11-12 17:35:58
各位好,最近小弟在思考這個問題
有些人會用firebug或是chrome的F12去修改元素,若我想避免user這樣操作
有什麼方法可以參考?
以下是我寫的簡易html跟php
#html
<form action="1.php" method="POST" id="form">
<select name="opt" id="opt">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="a" id="a" value="a">
<input type="submit" name="b" id="b" value="b">
</form>
<script type="javascript/text">
$(function(i){
$("#b").hide();
$("#opt").on("change",function(){
var opt = $(this).val();
if (opt==1) {
$("#b").hide();
$("#a").show();
}else{
$("#a").hide();
$("#b").show();
};
});
})
</script>
#1.php
echo $_POST["a"];
echo $_POST["b"];
echo $_POST["opt"];
exit(1);
期望控制php只會印出 a1 或是 b2兩種結果
有什麼建議的做法嗎?
作者: bibo9901 (function(){})()   2015-11-12 18:03:00
mission impossible
作者: LPH66 (-6.2598534e+18f)   2015-11-12 18:06:00
觀念: 不要假設 GET/POST 變數會如何, 就算這些變數是在網頁裡寫死的也是一樣; 即使不用這種修改工具也是能做出不符合你預設條件的輸入
作者: commenbear (commenbear)   2015-11-12 18:11:00
的確是如此@@
作者: rockmanalpha (KIN)   2015-11-12 18:30:00
輸入是一定要驗證的 要符合你想要的內容標準網頁顯示的 或者用前端來限制輸入只是讓使用者不會錯誤輸入不符的內容
作者: wilson200106 (種子種子)   2015-11-12 19:30:00
原po帥哥 還是乖乖用ajax+token吧
作者: rickysu (Ricky)   2015-11-13 09:07:00
寫網頁程式的鐵則--不要相信任何 user 傳來的資料。不要去期望 user 傳來的資料都會符合你的預期。比較正確的作法應該是自己作個 filter 去篩選資料只要收到的資料不是 a1,b2 那就返回錯誤。
作者: s0920151048   2015-11-14 20:43:00
不要相信前端傳進來的資料
作者: TobyH4cker (Toby (我要當好人))   2015-11-16 14:27:00
ㄏㄏ還有助教跟我說我這是在攻擊伺服器
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-11-16 18:12:00
可以算是啊 HTML injection (?)
作者: KawasumiMai (さあ、死ぬがいい)   2015-11-16 23:36:00
就算都是自己寫的,也要假設有人使用非法UI所有跟預想值不符的範圍都要篩掉,不能吃或引起crash
作者: see7di (see7di)   2015-12-21 22:55:00
就算你封掉了這兩個工具,可還有其他的,所以別相信任何來自客戶端的內容

Links booklink

Contact Us: admin [ a t ] ucptt.com