保护C#和PHP

时间:2015-06-15 15:33:15

标签: c# php mysql ssl unity3d

我正在开发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会调用安全代码,如果正确,则会增加数据库中的变量。

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

为了让你更好地理解,我会给你看一张总结的图片:

http://postimg.org/image/x3owvt5il/

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

1 个答案:

答案 0 :(得分:0)

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