2014-03-29 126 views
0

我有Serialized所有Dictionaries在我的應用程序中的一個文件。所以當我打開這個文件時,我可以看到很多關於我的類名和已經與文件一起保存的信息等。 這樣安全嗎?每個人都可以打開一個由我的應用程序創建的保存文件,並查看我使用過的哪些類?這裏是我用來Serialize我對象的方法:安全問題關於序列化C#

Serialization of two Dictionaries at once

我有什麼選擇保存在我的應用程序文件我的對象。

+0

取決於你有什麼樣的應用程序 – thumbmunkeys

+0

你是否打算長時間存儲序列化信息?儘管我從未見過這種需求。 – Rahul

回答

2

是的,他們將能夠看到序列化對象的結構(也許如果你將它序列化爲二進制文件,這有點困難,但沒有多大幫助)。

但是,無論如何,任何人都可以看到您的源代碼,只需考慮.NET Reflectorildasm。我個人不會擔心,我沒有看到任何問題。

+0

這是正確的。此外,除了學習/測試目的外,可能沒有必要永久存儲序列化的目標文件。所以,他們應該被認爲是安全的。 – Rahul

2

您可以加密文件以隱藏它的內容。因此,要讀取加密文件,您需要將其讀取到內存中,解密,然後傳遞到反序列化Formatter

1

在我看來,你不應該害怕它..但這取決於你的需要。 如果您認爲這對您很重要,我會建議將數據存儲在其他地方(遠程存儲)。

您將有隱藏的內容3層的替代品:

  1. 加密的對象,並對其進行序列化(最適合本地倉儲和郵政) - http://msdn.microsoft.com/en-us/library/as0w18af(v=vs.110).aspx
  2. 序列化對象,加密的文件(更糟糕,你將不得不處理刪除文件) - http://support.microsoft.com/kb/307010
  3. serialaztion二進制 - 最壞的打算,並沒有真正的工作 - 你可以打開如圖中的txt文件發生了什麼事情上

所以,如果這是您程序中的重要內容,我認爲第一種方法將是最好的。