2011-07-06 46 views
1

這是一個澄清的問題:我學的MCTS 70-515和我的訓練包它指出隱藏字段:「用戶可以查看或修改存儲在隱藏字段中的數據」asp.net隱藏字段 - 被修改?

現在我意識到用戶可以查看頁面的來源,然後顯示隱藏的字段數據。但我對修改部分很好奇。用戶如何修改隱藏字段數據以及它如何影響網站?即使他們通過查看源修改數據,他們也無法保存頁面,然後將數據發回服務器。

我錯過了作者假設我知道的是什麼?

好吧,所有的答案都說同一件事(在這個時候)。我想如果作者會說「精明」用戶那麼這可能會給我帶來好處。我想我一直認爲用戶不會知道Firebug或任何其他可以在頁面顯示給用戶後可以進行操作的工具。

謝謝你的答案。我很感激!

+1

有一些瀏覽器插件可讓您修改/設置任何輸入字段的值。更改位於客戶端網站上,但在下次回發時,該值將在服務器網站上更新。 –

回答

3

隱藏字段 只是一個鍵值對 ,在序列化併發送到服務器時表示爲鍵值對,就像任何其他表單元素一樣。有許多方法可以修改隱藏字段 - 一種是在瀏覽器中使用FireBug或其他「開發者控制檯」,另一種是手動編寫請求並將其發送到服務器。

+0

'隱藏字段只是一個鍵值對',不,它被用作鍵值對,它是一個HTML輸入或隱藏的元素和asp控件,來自回發的HTTP表單中的值。你也錯過了隱藏的最可能的方式是在野外改變,這是JavaScript。 – StuperUser

+0

@StuperUser你是對的 - 隱藏字段不是鍵值對。我已經稍微編輯了這篇文章。 –

1

很簡單,打開一個程序,如FireBug,並更改元素值。請記住,標記是客戶端,因此服務器信任客戶端發送正確的數據 - 但是,這很容易規避。

最好在會話中存儲對應用程序安全性至關重要的數據,而數據保留在服務器端並與客戶端綁定。 ASP.NET可以組成哈希來防止未經授權的字段修改,其他事情。

2

除了使用諸如Firebug之類的調試工具之外,用戶可以通過其他交互(使用JavaScript)爲其更改而間接更改隱藏字段的值。通常,用戶不知道他們在做什麼的技術細節(他們都不知道,也不在意隱藏字段發生了變化)

其他工具(如Fiddler)可能攔截Web請求並且更改隱藏(或任何)字段的值,因爲它在回發中傳輸到服務器。