2009-11-20 79 views
1

我期待着一種方法可以安全地從頁面到頁面傳遞數據,並避免因爲可能的篡改。安全地從頁面到頁面傳遞數據


  • 解決這個問題的最好辦法,是爲了節省數據庫服務器上的敏感數據。
  • 或使用會話保持在數據庫服務器上。
  • 或者任何可以在數據庫服務器上保存數據的方法。

事實是因爲性能我不喜歡使用這種方法。

我不知道下面是一個安全的方式,但我想對它進行測試。(但我不知道是否有可能)

我想保存敏感數據在tespage1.aspx中的ex中以加密方式顯示並從testpage2.aspx中檢索。

我該怎麼做,是否安全?

在此先感謝

+0

http:// stackoverflow。com/questions/264570/sensitive-data-in-viewstate – Bryan 2009-11-20 20:09:29

回答

2

創建自定義類以保存敏感數據。

class myCustomeClass 
{ 
    int id; 
    string name; 
    currency amount; 

    '... properties to access 

    '... custom methods 

    '... etc. 
} 

如果你真的偏執包括加密/解密的數據的方法... 現在,設定字段和屬性。 接下來,加密(可選)。 把這件事情在Cache ...

Cache.Insert("MySensitiveData", myCustomClass, null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration); 

重定向到其他網頁

在Page_Load事件

MyCustomClass oSensitiveData; 

if (!IsPostBack) 
{ 
    oSensitiveData = (myCustomeClass)Cache["MySensitiveData"]; 
} 

就是這樣,你有你的數據,如果你加密它,你現在需要解密它...

有很多方法可以做到這一點,但這一個適用於我相對較小的數據集。如果您正在處理大量數據,那麼您可能需要探索使用Sql Sever,mySql等數據庫......來充當數據的「緩存」。

+0

感謝Mac對你的帖子。 我認爲這是一個很好的方法來做到這一點。 所以我會試試看。 是的,我是偏執狂:)所以我也會使用加密方法。 – StrouMfios 2010-01-13 18:22:14

0

它總是建議敏感數據,應該在服務器不與客戶端。您嵌入頁面中的任何內容都是一種責任。既然你已經排除了所有的服務器端選項,ViewState應該是我相信由於其加密的最佳選擇。您還可以使用Page.enableviewstatemac屬性進行安全的視圖狀態傳輸。

0

這裏有兩個問題......一,ViewState不安全。默認情況下,它只是一個簡單的BASE64編碼。將這些數據保存在服務器上,期間。其他任何事情都在尋求麻煩。二,ViewState丟失,當你去一個新的頁面,有充分的理由。這不是如何將數據從一個aspx頁面傳遞到另一個頁面。

此外,出於性能原因選擇ViewState over Session在大多數情況下沒有意義。使用InProc Session或Cache將比ViewState更有效率。

相關問題