java - 序列化有什么不安全的地方吗?

标签 java security encryption serialization

我遇到了 this article其中指出:

“规则 9:让你的类不可序列化

序列化是危险的,因为它允许攻击者获取您对象的内部状态。”

虽然我能理解作者在说什么,但为什么不能只加密任何序列化数据呢?如果允许序列化数据的序列化是不安全的,那么正确的替代方法是什么?

最佳答案

我认为作者的意思是您应该默认使您的类不可序列化。也就是说,如果您有意想要序列化您的类(class) - 那就去做吧。

至于替代方案,您可以创建对象的状态 的 json/xml 表示 - 而不会泄露实现的内部结构。

您也可以像您建议的那样加密这些位。可以在 this article 中找到有关如何使用位旋转来完成此操作的简单演示。 .

关于java - 序列化有什么不安全的地方吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32545993/

相关文章:

java - 具有共享数据库的单体到微服务

Java IncationHandler 和 Singleton

java - 如何使安全信息远离 App Engine 日志?

java - 加密的 AES key 太大,无法使用 RSA (Java) 解密

java - AES256 的 Oracle DBMS_CRYPTO.ENCRYPT 初始化 vector 长度

php - 在 Javascript 和 PHP 之间混淆 POST 变量

c++ - 字符串在 RC4 解密过程中被截断

java - 在字符串中查找姐妹括号

mysql - 如何安全地存储 API token ?

node.js - Node.js 是否会增加跨连接共享数据的风险?