保护C#和PHP之间的通信(不使用加密数据)
我正在开发一个Android和iOS游戏,我需要调用php页面来收集数据并将其输入数据库mysql 数据的发送和接收工作正常,问题是发送的数据没有加密,但我可以用ssl证书解决这个问题,以便对所有发送的数据进行加密 另一个问题是,使用一些适当的程序(例如:Charles Proxy),您可以看到指向我的php文件的地址,因此您可以反复重新提交数据包 例如: 这是我的test.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")
$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如何记录问题的完成情况,并给出分数。看到了,是的。把同样的单词放在答案框里,然后你就可以把它们排除在问题之外了。