我正在使用 PHP 通过 mysqli 连接到我的数据库。查询是用 Java 代码进行的,并使用 JSON 发送到我的 PHP 脚本。
我有一个动态查询,并且在我的代码中进行,所以我不能使用准备好的语句。
例如我有一次:SELECT x FROM y WHERE z = ? AND o =?
。在其他时间:SELECT x FROM y WHERE z = ? AND o =? and k = ? and j =?
这是由用户选择的,我不知道查询会是什么。
我的问题是我接触到了 SQL 注入。
我想了一个步骤来保护我的数据库免受 SQL 注入,如果这是一个好主意或者有更好的主意,我想听听你的意见。我考虑过将密钥发送到我的 PHP 脚本,并且只有在密钥好的情况下才会执行 SQL 操作。
例如:
if($key == "2fdgfg1sdjsdgj2JDSJDFSG2394KSDJG")
{
// do SQL
}
这就是我在我的代码中使用的。用户可以从我的数据库中选择他想查看的汽车类型。
在 Android 应用程序中,他有一个对话框,他可以在其中选择他想要的汽车。然后我在我的java代码中使用这个代码:
int length = usersChecked.length;
String sqlQuery = "";
for (int i = 0; i < length; i++) {
if (usersChecked[i]) {
if (sqlQuery.equals(""))
sqlQuery = " = " + list[i];
else
sqlQuery = sqlQuery + " OR user = "
+ list[i];
}
}
favoritesQuery = "SELECT car, year, gas_type FROM cars_names WHERE user "
+ sqlQuery
+ " ORDER BY date DESC LIMIT ? , ?";