2013-10-09 143 views
0

我有一個有關input = hidden字段的棘手問題,其值爲$ _SESSION ['userid']。問題是,當有人打開螢火蟲時,他可以輕鬆地更改數值數據...我怎樣才能防止這種情況發生?可更改的輸入隱藏字段

<input type="hidden" name="id" value="ID" /> 
+3

添加服務器端驗證和檢查。歡迎來到userland,任何人都不可信 –

+0

這是不可能的。你無法阻止這一點。 – maketest

回答

3

你不能,你可能會想驗證$ _ POST [「身份證」] === $ _SESSION [「用戶ID」]表單提交後,確認你有正確的價值存在。即在客戶端(HTML,JavaScript的...)坐在

2

任何理論上可以由用戶進行修改。所以我們的想法是不把任何敏感數據放在客戶端,或者至少在服務器端重複檢查。

在你的例子中,你使用它似乎是一個SESSION變量。你爲什麼需要在客戶端?如果這個數據已經在$ _SESSION中,也許你可以直接使用它? 在您的接收代碼而不是閱讀$_POST['id]只是直接閱讀$_SESSION['userid']

如果你真的需要重新發送數據(如果是這樣解釋原因),然後在服務器端的支票,你所得到的匹配與當前登錄的用戶(或什麼是當前會話)。

在我的一個自動生成表單的應用程序中,我簡單地忽略了服務器端的一些字段,並將它們替換爲我期望它們是什麼 - 無論從我的數據庫還是會話變量中取得。