保护 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文件不可见或使其看起来未知?或者,如果有人尝试重复这些请求,则不要更改数据库上的值?

保护 C# 和 PHP 之间的通信(而不是加密数据)

解决方案:我找到了解决方案!我在客户端和服务器之间的连接领域不是很实用。为了保护客户端和服务器之间的通信,只需使用 HTTPS 协议,因此除了已经加密数据外,您还具有加密通信,以便没有人可以看到您的 url,并且无法创建您之前发送的包的无休止请求。