2012-05-10 60 views
0

我想確保用戶輸入,如果是文本輸入,我們可以簡單地使用filter_inputmysql_real_escape_string用戶可以更改選擇框的輸入變量嗎?

我的問題是:當變量來自選擇框時,我必須使用這些嗎?一些狡猾的用戶可以從瀏覽器更改POST值嗎?

我的選擇框從數據庫動態填充。我是否還需要將收到的數據(提交後)與數據庫進行比較,並使用mysql_real_escape_string以確保安全?

+3

永遠不要相信用戶輸入;) – djot

+0

是的,通過POST很容易發送不同於「你的」數據的數據,因此始終驗證用戶輸入。 – djot

+1

並切換到準備好的語句,這是2012. – jeroen

回答

3

當然,您需要確認全部您始終從客戶端獲得的數據。

+0

謝謝你們。 – pygmy

2

是的,某人可以改變任何表單元素上的輸入。 Firefox中的FireBug可以讓我更改網頁客戶端副本上的任何源代碼,並使用我更改後的數據提交表單。

0

你不能相信任何來自用戶的東西。假設用戶發送給你的所有內容都是邪惡的。你需要逃避一切,甚至更好地使用預先準備的語句/參數化查詢。

0

如果您需要安全站點,則需要驗證每個輸入。 您需要檢查選擇框字段是否與保證數據庫值匹配。

相關問題