使用php发送变量的最安全方式


Most secure way to send variables with php

我是PHP代码的新手,我想知道我的编码方式是否正确。我需要将数据从我的android应用程序发送到我的服务器。我现在用php来做。(这是正确的方法吗?如果不是,我应该用什么?)

所以如果我把它们传给我的服务器,它是这样的:

www.myserverexample.com/myPhpScript.php?variable1=text1&variable2=text2

这似乎不是正确的方式。如果我需要向服务器发送20个变量,这还可以吗?看起来这样做并不安全。

(对正确变量的所有验证都在php脚本中完成,然后发送到我的数据库)

  1. 使用HTTPS。现在至少有3个组织可以为您提供免费证书。使用HTTPS时,GET和POST变量都受到保护。

  2. 你打算使用共享主机还是专用主机?您将如何保护web服务器日志?这些变量中的值有多敏感或个人化?我们需要知道这一点,然后才能决定GET是否安全,因为整个URL都被记录了下来。

  3. 服务器上的值有任何变化吗?喜欢更新数据库或文件吗?如果是这种情况,您应该使用POST。

如果您控制自己的web服务器日志(即,不共享托管),并且这些值不是特别敏感,那么GET就可以了。否则,请使用POST。

您正在使用GET方法。这是有效的,但不安全,也不是应该如何发送任何敏感数据如果需要安全地将数据发送到服务器您需要在SSL 上使用POST方法

在这种情况下,我建议您使用POST请求将数据发送到php脚本。使用POST,您可以在HTTP内容主体中发送的数据量没有限制(我认为GET请求中查询字符串的最大长度为2KB),并且您的变量更隐蔽,因为它们没有在查询字符串中公开。

如果切换到使用POST,则需要在php脚本中将所有$_GET变量更改为$_POST,并在应用程序中将content-type请求标头设置为x-www-url-form-encoded
请注意,如果您想防止MITM攻击并提高整体安全性,请使用SSL。

在客户端(android应用程序)和服务器(php-web应用程序)之间发送数据可以通过多种方式完成。

最为人所知的方法是https协议,但在我们深入研究之前,您应该熟悉HTTP方法!

你现在使用的是GET方法,它通过url发送数据,并且对每个人都可见,所以很明显它是安全的!

您最多使用POST方法来解决此问题!

然后考虑使用HTTPS认证,因为它会加密您的数据,因此不会被盗。