3

如果我通过网络发送序列化对象,如何保护序列化对象?我怀疑黑客可能会中断/破解我的数据。

谁能详细说明如何实现这一点?

4

7 回答 7

6

本演示文稿提供了有关攻击者如何有效地篡改 Java 序列化流的想法:

  1. https://www.owasp.org/images/e/eb/OWASP_IL_2008_Shai_Chen_PT_to_Java_Client_Server_Apps.ppt

    如果服务器的类路径中存在易受攻击的类,还存在注入意外行为和注入代码的风险。见这篇文章:

[前瞻Java反序列化][3]

于 2013-01-15T14:50:13.043 回答
4

java.crypto.SealedObject就是你要找的。

于 2012-07-11T23:51:41.060 回答
2

您可以对其进行加密或散列,但 java 序列化格式是通过网络发送的最佳选择 - 更好的解决方案是 JSON / XML(加密或使用某些加密算法签名)

于 2012-07-10T15:53:07.137 回答
1

如前所述查看加密,但更具体地查看用于 java 中网络通信的 hte SSL/TLS 库。

http://juliusdavies.ca/commons-ssl/ssl.html

当 Java 内置了一个非常强大的库时,无需尝试实现安全加密通信。

于 2012-07-10T15:55:13.260 回答
1

在我看来,您可以使用 useSSLSocketSealedObject. 但是,它会让你的事情变得有点沉重。但是,本文也描述了其中一个选项。http://www.ibm.com/developerworks/library/j-5things1/

于 2013-10-07T20:56:26.330 回答
1

您可以使用签名对象和密封对象来保护序列化对象

于 2015-11-02T09:00:55.193 回答
0

我在这里的线程中添加了一个有用的资源,Oracle 的Java SE 安全编码指南(特别是在这种情况下,指南中的第 8 节,“序列化和反序列化”):

https://www.oracle.com/java/technologies/javase/seccodeguide.html#8

于 2021-10-19T16:09:42.753 回答