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

保护C#和PHP之间的通信(不使用加密数据),c#,php,mysql,ssl,unity3d,C#,Php,Mysql,Ssl,Unity3d,我正在开发一个Android和iOS游戏,我需要调用php页面来收集数据并将其输入数据库mysql 数据的发送和接收工作正常,问题是发送的数据没有加密,但我可以用ssl证书解决这个问题,以便对所有发送的数据进行加密 另一个问题是,使用一些适当的程序(例如:Charles Proxy),您可以看到指向我的php文件的地址,因此您可以反复重新提交数据包 例如: 这是我的test.php: $code = $_POST['SecretCode']; if($code == "secretcode")

我正在开发一个Android和iOS游戏,我需要调用php页面来收集数据并将其输入数据库mysql

数据的发送和接收工作正常,问题是发送的数据没有加密,但我可以用ssl证书解决这个问题,以便对所有发送的数据进行加密

另一个问题是,使用一些适当的程序(例如:Charles Proxy),您可以看到指向我的php文件的地址,因此您可以反复重新提交数据包

例如:

这是我的test.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调用check the security code,如果正确,将增加数据库中的变量

当游戏发送此请求时,Charles Proxy可以看到请求,因此我可以与Charles一起无休止地重新发送请求,从而无休止地增加数据库中的值

为了让您更好地理解,我将向您展示一幅总结所有内容的图片:

最后,有一种方法可以使php文件不可见或使其看起来未知?
或者,如果有人试图重复这些请求,请不要更改数据库上的值?

解决方案:我找到了解决方案!我在客户机和服务器之间的连接方面不是很实用。为了保护客户端和服务器之间的通信,只需使用HTTPS协议,因此除了对数据进行加密之外,您还拥有加密通信,因此没有人能看到您的url,也不能对您之前发送的包创建无休止的请求。

您应该在提供的答案框中写下您的解决方案,然后您可以接受该答案。这就是Stack Overflow如何记录问题的完成情况,并给出分数。看到了,是的。把同样的单词放在答案框里,然后你就可以把它们排除在问题之外了。