【发布时间】:2016-12-11 16:06:51
【问题描述】:
我有一个简单的脚本可以将 SQL 查询发送到 PHP 脚本,但我不知道如何保护它免受 SQL 注入。
你有什么想法吗?谢谢!
C# 脚本
private void SQLConnect()
{
string urlAddress = "XXX";
查询 PHP 脚本
string query = "INSERT INTO user (name) VALUES ('Test-Name')";
通过 POST 将查询发送到 PHP 脚本
using (WebClient client = new WebClient())
{
NameValueCollection postData = new NameValueCollection()
{
{ "newQuery", query },
};
string pagesource = Encoding.UTF8.GetString(client.UploadValues(urlAddress, postData));
}
}
PHP 脚本
$db_server = xxx;
$db_benutzer = 'xxx';
$db_passwort = 'xxx';
$db_name = 'xxx';
连接到数据库
$mysqli = new mysqli($db_server, $db_benutzer, $db_passwort, $db_name);
if ($mysqli->connect_errno)
{
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
else
{
echo "Connected...\n";
}
从 C# 接收并执行查询
$newQuery = $_POST["newQuery"];;
if ($mysqli->query($newQuery) === TRUE)
{
echo("Success...\n");
}
mysqli_close($mysqli);
【问题讨论】:
-
这取决于您的查询是由您不信任的来源生成的吗?如果它只是关于由不受信任的来源生成的变量,您可以使用 Ronald 的答案。
标签: c# php security mysqli sql-injection