如果通过网络发送序列化对象,如何保护序列化对象? 我怀疑黑客可能会打断/破解我的数据。
任何人都可以详细说明如何实现这个目标吗?
答案 0 :(得分:6)
本演示文稿介绍了攻击者如何有效篡改Java序列化流:
https://www.owasp.org/images/e/eb/OWASP_IL_2008_Shai_Chen_PT_to_Java_Client_Server_Apps.ppt
如果服务器的类路径上存在易受攻击的类,则还存在注入意外行为并注入代码的风险。见文章:
[Look-ahead Java反序列化] [3]
答案 1 :(得分:4)
java.crypto.SealedObject
正是您要找的。 p>
答案 2 :(得分:2)
你可以加密或散列它,但是java序列化格式是通过网络发送的一个很好的选择 - 更好的解决方案是JSON / XML(加密或用一些加密算法签名)
答案 3 :(得分:1)
如前所述,请查看加密,但更具体地说,请查看用于java中网络通信的hte SSL / TLS库。
http://juliusdavies.ca/commons-ssl/ssl.html
当Java中内置了非常强大的库时,无需尝试实现安全加密通信。
答案 4 :(得分:1)
在我看来,您可以使用SSLSocket
或SealedObject
。但是,它会让你的事情变得有点沉重。但是,本文还介绍了其中一个选项。 http://www.ibm.com/developerworks/library/j-5things1/
答案 5 :(得分:1)
您可以使用签名对象和密封对象来保护序列化对象