我想確保用戶輸入,如果是文本輸入,我們可以簡單地使用filter_input
和mysql_real_escape_string
。用戶可以更改選擇框的輸入變量嗎?
我的問題是:當變量來自選擇框時,我必須使用這些嗎?一些狡猾的用戶可以從瀏覽器更改POST值嗎?
我的選擇框從數據庫動態填充。我是否還需要將收到的數據(提交後)與數據庫進行比較,並使用mysql_real_escape_string
以確保安全?
我想確保用戶輸入,如果是文本輸入,我們可以簡單地使用filter_input
和mysql_real_escape_string
。用戶可以更改選擇框的輸入變量嗎?
我的問題是:當變量來自選擇框時,我必須使用這些嗎?一些狡猾的用戶可以從瀏覽器更改POST值嗎?
我的選擇框從數據庫動態填充。我是否還需要將收到的數據(提交後)與數據庫進行比較,並使用mysql_real_escape_string
以確保安全?
是的,某人可以改變任何表單元素上的輸入。 Firefox中的FireBug可以讓我更改網頁客戶端副本上的任何源代碼,並使用我更改後的數據提交表單。
你不能相信任何來自用戶的東西。假設用戶發送給你的所有內容都是邪惡的。你需要逃避一切,甚至更好地使用預先準備的語句/參數化查詢。
如果您需要安全站點,則需要驗證每個輸入。 您需要檢查選擇框字段是否與保證數據庫值匹配。
永遠不要相信用戶輸入;) – djot
是的,通過POST很容易發送不同於「你的」數據的數據,因此始終驗證用戶輸入。 – djot
並切換到準備好的語句,這是2012. – jeroen