用于简单插入MySQL的PHP PDO安全程序
我刚刚开始学习PHP(和SQL一起),并且我已经研究了很多安全措施。本网站: 这对我很有帮助,尽管大部分都是像我这样的初学者所没有的 我发现,要防止SQL注入,最好的方法是通过准备好的和参数化的查询。所以我用PDO编写了我的PHP代码 但我仍然觉得它不那么安全,特别是因为我在处理文件传输 如果有人能看看我的代码的方法,看看它是否有任何即时的安全问题,我将不胜感激 谢谢:)用于简单插入MySQL的PHP PDO安全程序,php,mysql,security,pdo,sql-injection,Php,Mysql,Security,Pdo,Sql Injection,我刚刚开始学习PHP(和SQL一起),并且我已经研究了很多安全措施。本网站: 这对我很有帮助,尽管大部分都是像我这样的初学者所没有的 我发现,要防止SQL注入,最好的方法是通过准备好的和参数化的查询。所以我用PDO编写了我的PHP代码 但我仍然觉得它不那么安全,特别是因为我在处理文件传输 如果有人能看看我的代码的方法,看看它是否有任何即时的安全问题,我将不胜感激 谢谢:) 但我仍然觉得它不那么安全,特别是因为我在处理文件传输 因此,目前有两个问题值得关注: 准备好的语句是否足以停止SQL注
但我仍然觉得它不那么安全,特别是因为我在处理文件传输
因此,目前有两个问题值得关注:
- 准备好的语句是否足以停止SQL注入?
- 是的,只要您禁用仿真
- 有关更多信息,请参阅
- 诸如的库提供了比PDO更安全的默认值。()
- 这是上传文件的安全方式吗?
- 代码在很多方面都被破坏了,但是没有任何与安全直接相关的东西跳出来
- 有关处理文件上载的信息,请参阅。请注意,您需要使用
而不是$\u文件
来处理上载的文件$\u POST
$dbConnection
从何而来?也可以看到,出于这样或那样的原因,我没有声明$dbConnection是代码中的一个错误,应该是$conn。
<?php $servername = "localhost";
$username = "hello";
$password = "world";
$dbname = "file_uploads";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,
$password);
// set the PDO error mode to exception
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO file_uploads (file, name) VALUES (:file,
:name");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':file', $file);
// from data in an html form
$name=$_POST['name'];
$file=$_POST['file'];
$stmt->execute();
echo "New records created successfully";
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$conn = null;
?>