我目前正在设计一个基本的Java程序,它使用套接字从服务器与多个客户端进行通信。但是,我希望客户端不被修改,以防止用户试图使用该软件而不是它的用途。我正在考虑使用MD5校验和并将其发送到服务器以将其与校验和应该进行比较,但是修改后的客户端可能只是发送一个不正确的校验和来假装服务器认为客户端没有动过。
简单地说,我将如何以这样的方式验证客户端,修改后的客户端不能伪造未经修改?
(注意:这是security stackexchange交叉发布的问题,因为建议在此处发布)
答案 0 :(得分:0)
这是一个非常大的问题,简短的回答是,您无法保证客户端代码不会被修改,特别是不能在基本的"程序
您的服务器不应该依赖于将客户端视为受信任的客户端,而是在其结束时处理所有访问控制,验证等。
一种可以减慢或阻止可能想要修改代码的人的方法是要求你描述的哈希值和签名会使得它更加烦人 - 但不,不幸的是,你不能验证客户端肯定100%未经修改。