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

看板PHP作者 (commenbear)時間8年前 (2015/11/12 17:36), 編輯推噓4(4017)
留言21則, 11人參與, 最新討論串1/1
各位好,最近小弟在思考這個問題 有些人會用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兩種結果 有什麼建議的做法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.166.221 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1447320960.A.A70.html

11/12 18:03, , 1F
mission impossible
11/12 18:03, 1F

11/12 18:06, , 2F
觀念: 不要假設 GET/POST 變數會如何, 就算這些變數是在
11/12 18:06, 2F

11/12 18:07, , 3F
網頁裡寫死的也是一樣; 即使不用這種修改工具也是能做出
11/12 18:07, 3F

11/12 18:07, , 4F
不符合你預設條件的輸入
11/12 18:07, 4F

11/12 18:11, , 5F
的確是如此@@
11/12 18:11, 5F

11/12 18:30, , 6F
輸入是一定要驗證的 要符合你想要的內容標準
11/12 18:30, 6F

11/12 18:31, , 7F
網頁顯示的 或者用前端來限制輸入只是讓使用者不會
11/12 18:31, 7F

11/12 18:31, , 8F
錯誤輸入不符的內容
11/12 18:31, 8F

11/12 19:30, , 9F
原po帥哥 還是乖乖用ajax+token吧
11/12 19:30, 9F

11/13 09:07, , 10F
寫網頁程式的鐵則--不要相信任何 user 傳來的資料。
11/13 09:07, 10F

11/13 09:08, , 11F
不要去期望 user 傳來的資料都會符合你的預期。
11/13 09:08, 11F

11/13 09:09, , 12F
比較正確的作法應該是自己作個 filter 去篩選資料
11/13 09:09, 12F

11/13 09:10, , 13F
只要收到的資料不是 a1,b2 那就返回錯誤。
11/13 09:10, 13F

11/14 20:43, , 14F
不要相信前端傳進來的資料
11/14 20:43, 14F

11/16 14:27, , 15F
ㄏㄏ
11/16 14:27, 15F

11/16 14:28, , 16F
還有助教跟我說我這是在攻擊伺服器
11/16 14:28, 16F

11/16 18:12, , 17F
可以算是啊 HTML injection (?)
11/16 18:12, 17F

11/16 23:36, , 18F
就算都是自己寫的,也要假設有人使用非法UI
11/16 23:36, 18F

11/16 23:36, , 19F
所有跟預想值不符的範圍都要篩掉,不能吃或引起crash
11/16 23:36, 19F

12/21 22:55, , 20F
就算你封掉了這兩個工具,可還有其他的,所以別相信任何
12/21 22:55, 20F

12/21 22:55, , 21F
來自客戶端的內容
12/21 22:55, 21F
文章代碼(AID): #1MH5s0fm (PHP)