保护 C# 和 PHP 之间的通信(而不是加密数据)
本文关键字:加密 数据 通信 PHP 之间 保护 | 更新日期: 2023-09-27 17:56:23
我正在开发一款Android和iOS游戏,我需要调用php页面来收集数据并将其输入数据库mysql。
数据的发送和接收工作正常,问题是发送的数据没有加密,但是我可以使用SSL证书来解决它,以便对所有发送的数据进行加密。
另一个问题是,使用一些适当的程序(例如:Charles Proxy),您可以看到指向我的php文件的地址,因此您可以一遍又一遍地重新提交数据包。
例如:
这是我的测试.php:
$code = $_POST['SecretCode'];
if($code == "secretcode")
{
// Connect to DB and increment 'i' value
}
这是我在 Unity3D 中的 C# 代码:
public IEnumerator test()
{
WWWForm form = new WWWForm();
form.AddField("SecretCode", secretcode);
WWW www = new WWW("http://sitename.com/test.php", form);
yield return www;
if(www.text != "")
{
// Returned value
}
}
现在,如果我从我的游戏中调用"test ()"函数,则称为检查安全代码的 php,如果正确,将增加数据库上的变量。
当游戏发送此请求时,Charles Proxy 可以看到该请求,因此我可以与 Charles 一起无休止地重新发送请求,从而无休止地增加数据库中的值。
为了让您更好地理解,我将向您展示一张总结这一切的图片:
http://postimg.org/image/x3owvt5il/
最后有一种方法可以使php文件不可见或使其看起来未知?或者,如果有人尝试重复这些请求,则不要更改数据库上的值?
解决方案:我找到了解决方案!我在客户端和服务器之间的连接领域不是很实用。为了保护客户端和服务器之间的通信,只需使用 HTTPS 协议,因此除了已经加密数据外,您还具有加密通信,以便没有人可以看到您的 url,并且无法创建您之前发送的包的无休止请求。