2011-03-16 48 views
0

我在我的Asp.net頁面中使用HiddenField,並在其中存儲了一些值。 但用戶可以通過客戶端的firefox Firebug更改其值,並在其中輸入無效值。 ,所以當用戶在網頁上按下提交按鈕時,無效數據將在服務器端收到,無效數據將存儲在我的數據庫中。 我該怎麼辦?通過客戶端更改HiddenField值

+0

不要給用戶的任何詳細信息比絕對必要。隱藏字段非常適合幫助用戶體驗,但服務器無論如何都需要驗證所有輸入。 – zzzzBov 2011-03-16 19:48:16

回答

2

驗證服務器端的輸入。無論如何,你總是應該這樣做,永遠不要信任用戶。

所以基本上,無論您在後面的代碼中處理將數據保存到數據庫的方法都需要檢查首先發送的所有數據。

+0

如果我想檢查與我的數據庫條目一起輸入的數據,那麼過載如何?我還有什麼可以使用的,而不是用戶無法更改其值的隱藏字段?最好說我需要通過javascript更改值。 – 2011-03-16 19:52:39

+0

這真的取決於你在做什麼,以及你使用隱藏的領域。您在隱藏字段中存儲了哪些類型的信息? – Loktar 2011-03-16 20:01:00

+0

我有一個文本框,用戶可以通過它搜索技能,然後在網格視圖中顯示結果,他/她可以從gridview中選擇多個技能。所以爲了防止回發,我使用了jquery和ajax。所以我需要存儲用戶在hiddenField中選擇的每個技能的等價值,然後將其傳遞給服務器。 – 2011-03-16 20:08:10

1

儘管沒有什麼可以防止客戶端黑客入侵,但您可以讓他們更難訪問數據。 將該值存儲在JavaScript var中,然後將該值寫入隱藏字段onSubmit 即使使用此方法,一個好的開發人員工具包也可以讓您更改,但它現在與隱藏字段一樣明顯。

關於安全性的另一件事是添加更多圖層。

  • 使用encrpytion
  • 存儲在數據庫中的數據
  • 值不要存儲在客戶端的所有