我在我的Asp.net頁面中使用HiddenField,並在其中存儲了一些值。 但用戶可以通過客戶端的firefox Firebug更改其值,並在其中輸入無效值。 ,所以當用戶在網頁上按下提交按鈕時,無效數據將在服務器端收到,無效數據將存儲在我的數據庫中。 我該怎麼辦?通過客戶端更改HiddenField值
回答
驗證服務器端的輸入。無論如何,你總是應該這樣做,永遠不要信任用戶。
所以基本上,無論您在後面的代碼中處理將數據保存到數據庫的方法都需要檢查首先發送的所有數據。
如果我想檢查與我的數據庫條目一起輸入的數據,那麼過載如何?我還有什麼可以使用的,而不是用戶無法更改其值的隱藏字段?最好說我需要通過javascript更改值。 – 2011-03-16 19:52:39
這真的取決於你在做什麼,以及你使用隱藏的領域。您在隱藏字段中存儲了哪些類型的信息? – Loktar 2011-03-16 20:01:00
我有一個文本框,用戶可以通過它搜索技能,然後在網格視圖中顯示結果,他/她可以從gridview中選擇多個技能。所以爲了防止回發,我使用了jquery和ajax。所以我需要存儲用戶在hiddenField中選擇的每個技能的等價值,然後將其傳遞給服務器。 – 2011-03-16 20:08:10
儘管沒有什麼可以防止客戶端黑客入侵,但您可以讓他們更難訪問數據。 將該值存儲在JavaScript var中,然後將該值寫入隱藏字段onSubmit 即使使用此方法,一個好的開發人員工具包也可以讓您更改,但它現在與隱藏字段一樣明顯。
關於安全性的另一件事是添加更多圖層。
- 使用encrpytion
- 存儲在數據庫中的數據
- 值不要存儲在客戶端的所有
- 1. 通過客戶端
- 2. .net Hiddenfield不在客戶端呈現
- 3. 通過javascript檢索hiddenfield值
- 4. 更改.Net客戶端中DropDownList的值
- 5. ViewState和客戶端更改
- 6. 在客戶端更改radnumerictextbox
- 7. 通過HAPROXY客戶端更改URL查看
- 8. 通過WCF從客戶端1到客戶端2的通知
- 9. 客戶端 - 客戶端通過服務器通信
- 10. AUDIO_OUTPUT_FLAG_FAST通過客戶端
- 11. Java web服務客戶端,動態更改客戶端證書
- 12. 用戶控件中的Hiddenfield無法在客戶端訪問它
- 13. 的NodeJS:客戶端到客戶端通過服務器
- 14. 客戶端通過防火牆客戶端
- 15. 從客戶端發送文件到客戶端通過HTTP
- 16. 客戶端 - 客戶端通過微軟Bot框架聊天
- 17. 客戶端過濾消息通過CorrelationId
- 18. 日期字段值從客戶端更改爲服務器端
- 19. HiddenField EventHandler ValueChanged在通過Javascript更改時未觸發
- 20. 更改/通過終端
- 21. 客戶端通過服務器到特定的客戶端通信
- 22. 我可以通過服務器實現客戶端 - 客戶端通信嗎?
- 23. Java axis1.X客戶端更改地址
- 24. 更改Lightswitch HTML客戶端語言
- 25. 更改wcf客戶端的xmlSerializer tempFilesLocation
- 26. 更改PrimeFaces對話是在客戶端
- 27. pushsharp客戶端名稱已更改
- 28. 呼叫客戶端更改數據庫
- 29. 保存客戶端html更改
- 30. SWT StyledText - 聽客戶端區域更改
不要給用戶的任何詳細信息比絕對必要。隱藏字段非常適合幫助用戶體驗,但服務器無論如何都需要驗證所有輸入。 – zzzzBov 2011-03-16 19:48:16