时间:2021-07-01 10:21:17 帮助过:14人阅读
客户端软件需要跟PHP进行通信,将用户机器码通过和PHP的通信上传到数据库里,怎么样的机制最安全?不会被人抓包到到通信方式从而向PHP发送虚假信息
这是个好问题。许多PC软件的程序员在这个问题上真的是不够小心。
人为污染域名解析进而伪造认证服务器的事情我做过,做的时候的最大感受就是——只会简单http明文传输的程序员们,真的是感激不尽!:-D
防止中途抓包和中间人攻击,所引发的伪造请求乃至伪造服务器,这真是太简单了。上https,一劳永逸。CA中心认可的域名SSL证书,是死也仿不出来的。
如果仍然坚持http,那么花点心思去自己实现不对称加密和握手协议,也可以接受。但请相信:这样带来的安全风险和程序员工时投入,一般不会比https的一点证书费用更省钱。
不过保证通讯中途不被截获分析,这只是安全的一方面。作为PC软件还有一个麻烦就是本地调试分析(通俗的说就是软件的破解)难以防范。如果软件自身的执行逻辑被窃取和修改,那么一切的安全都将不复存在。这是另一个角度的内容,不展开分析。只是提示:加密是个手段,安全却是个系统。
注:这个问题的重点应该是客户机-服务器的通讯方式,而不是PHP。以上的建议,把服务器端语言换成其他的也是一样的。