我有以下场景:Android客户端通过HTTP Post与PHP服务器通信。 PHP服务器正在与mySQL数据库通信,并将输出作为JSON发送到Android客户端。 我已经说过这个问题:securing connection to php server
结论是使用TLS / SSL来保护连接。不幸的是,我的服务器不支持tls。
有没有其他方法以某种方式使得获取我的php服务器的API变得更加困难,因此人们无法通过PC发布到我的服务器。
我想到了gzip,但我将是一个低障碍......
因此,如果有人用wireshark嗅探流量,他就不应该轻易知道与我的php服务器的通信是如何完成的。
答案 0 :(得分:3)
您可以为发送到服务器的所有数据创建某种散列,然后将该散列与数据一起发送到服务器,然后服务器可以计算相同的散列并针对发送的散列进行检查。然后没有人可以发送他们自己的数据,除非他们弄清楚如何计算哈希值。
答案 1 :(得分:1)
您可以使用ob_start
,ob_get_contents
和ob_end_clean
来捕获您输出的所有数据,然后使用一些加密算法来保护数据(可能使用派生的私钥)你自己的基于时间的函数,然后在客户端上运行一个程序来解密客户端的数据。
安全级别取决于您使用的技术,但如果使用过于复杂的东西,可能会牺牲一些性能。但是如果你使用自己的,就会让人很难破解,但这取决于他们试图打破你的系统的难度。
如果你想让它更复杂,那就看看Mentalis吧。他们制作了SSL服务器的开源C#实现,因此如果您需要一些灵感,可以使用其中一些。