相关疑难解决方法(0)

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

这是因为用户可以输入类似的内容value'); DROP TABLE table;--,查询变为:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

可以采取哪些措施来防止这种情况发生?

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

PHP PDO语句可以接受表名或列名作为参数吗?

为什么我不能将表名传递给准备好的PDO语句?

$stmt = $dbh->prepare('SELECT * FROM :table WHERE 1');
if ($stmt->execute(array(':table' => 'users'))) {
    var_dump($stmt->fetchAll());
}
Run Code Online (Sandbox Code Playgroud)

是否有另一种安全的方法将表名插入SQL查询?安全我的意思是我不想这样做

$sql = "SELECT * FROM $table WHERE 1"
Run Code Online (Sandbox Code Playgroud)

php pdo

232
推荐指数
5
解决办法
7万
查看次数

如何将动态构造的ext/mysql查询转换为PDO预处理语句?

我正在将一些使用ext/mysql(mysql_*()函数)的代码转换为PDO和预处理语句.以前当我动态构建查询时,我只是通过我的字符串mysql_real_escape_string()直接将它们放入我的查询中,但现在我发现我需要在执行查询时将值作为数组传递,或者在执行之前绑定变量.

如何将旧代码转换为使用新的数据库驱动程序?

php mysql pdo

9
推荐指数
1
解决办法
1345
查看次数

标签 统计

php ×3

mysql ×2

pdo ×2

security ×1

sql ×1

sql-injection ×1