序列化可以用作存儲程序狀態的安全手段嗎?使用c#序列化#
Q
使用c#序列化#
3
A
回答
4
不,序列化只是一種技術,允許您將對象或對象圖的內存中表示轉換爲稍後可以與類型定義一起使用的字節流,並將其重新恢復爲內存中的表示形式相同的對象。如果您需要某種安全性,您可以在將其保存(存儲)到磁盤或數據庫之前加密字節流,然後在解序列化之前再解密它,但串行化/反序列化過程本身不提供安全性。
1
尼斯摘自wikipedia:
序列化,但是,通過 可能暴露私人 實施細則打破了 不透明的抽象數據類型。爲了阻止 競爭對手製作兼容 產品,專有 軟件的發佈者經常保留 其程序的序列化格式 的商業祕密。有些人故意 混淆或甚至加密序列化的數據。
換句話說,序列化本身並不安全可言,因爲它可能暴露數據,而不是混淆或隱藏數據。人類可讀序列化可能會使這種困境變得更糟。
作爲一個完全側面的說明,我可以建議看看協議緩衝區而不是序列化嗎?
http://code.google.com/apis/protocolbuffers/docs/faq.html
Also: Jon Skeet's C# port of the protocol buffers (from Java, I believe...)
0
+1 @Charles'的解釋。
如果您要以每個用戶爲基礎保存應用程序設置,則應使用System.Security.Cryptography
命名空間中的ProtectedData
類來安全地存儲序列化數據;使用每個用戶數據的DataProtectionScope.CurrentUser
範圍。
ProtectedData
類使用用戶的登錄密碼加密數據;底層的DPAPI
代碼處理密碼更改,因此仍然可以訪問數據。
相關問題
- 1. 使用c序列化JSON#
- 2. 使用c#序列化
- 3. c#XML序列化nonamespace使用列表
- 4. 使用C#序列化Java可反序列化的對象
- 5. 如何使用MongoDB C#序列化器序列化值類型?
- 6. 使用C#進行二進制Plist序列化/反序列化#
- 7. C#反序列化使用JavaScriptSerializer.DeserializeObject的JSON
- 8. 如何使用C#XML序列化
- 9. 防止序列化使用datacontractjsonserializer C#
- 10. 使用序列化打破Singleton C#
- 11. 使用C#反序列化XML#
- 12. 使用stringstream的C++ boost序列化
- 13. C#以JSON序列化使用JSON.Net
- 14. c#json使用屬性序列化
- 15. 如何使用C去序列化JSON#
- 16. C#XML使用抽象類序列化
- 17. 使用JavaScriptSerializer C反序列化JSON#
- 18. 使用json.net c反序列化json#
- 19. boost C++序列化/反序列化
- 20. C#XML序列化/反序列化
- 21. VB序列化爲C#序列化
- 22. Python序列化c#反序列化
- 23. 序列化和反序列化(C#)
- 24. C#Xml序列化和反序列化
- 25. C#XML序列化/反序列化
- 26. 使用C#序列化異常使用C#
- 27. C#XML序列化
- 28. C#反序列化
- 29. C#反序列化
- 30. C#XML序列化
請問你能解釋多一點請 – anishMarokey 2010-07-22 04:11:08
序列化的目的不是安全的,所以想想加密。 – Incognito 2010-07-22 04:21:19
防禦會有什麼攻擊? – rook 2010-07-22 04:25:26