【发布时间】:2017-05-22 15:25:30
【问题描述】:
我有一个 Android 应用程序,我正在尝试使用 PHP/MySQL。
我在通过 C#/Android 访问 PHP 的结果时遇到了很多麻烦。
到目前为止,这是我的 PHP:
$sql = "SELECT Name FROM Employees WHERE Password='$password'";
if(!$result = $mysqli->query($sql)) {
echo "Sorry, the query was unsuccessful";
}
while($employee = $result->fetch_assoc()) {
$jsonResult = json_encode($employee);
$employee->close();
}
我省略了基本的连接代码,因为我已经启动并运行了所有这些代码。这是我的 C#:
private void OnLoginButtonClick()
{
var mClient = new WebClient();
mClient.DownloadDataAsync(new Uri("https://127.0.0.1/JMapp/Login.php?password=" + _passwordEditText.Text));
}
如您所见,我确实处于非常基础的阶段。我已经安装了 Newtonsoft,所以我准备好处理返回的 Json,但是我有几个问题。
我非常了解 SQL 注入,而我的变量(密码)传递给 PHP 的方式让我很担心。有没有更安全的方法?
其次,我现在不确定如何将与 PHP 中的 MySQL 命令匹配的“员工”返回 C#。如何访问从 PHP 传回的对象?
【问题讨论】:
-
永远不要存储纯文本密码!请使用 PHP 的built-in functions 来处理密码安全问题。如果您使用的 PHP 版本低于 5.5,您可以使用
password_hash()compatibility pack。 在散列之前不需要escape passwords 或对它们使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。