Nic*_*ick 8 php pdo sanitization
可能重复:
预处理语句如何防止SQL注入攻击?
对于我们这些刚接触PDO的人来说,我们认为它更安全,使用起来更好,但是我无法理解的是,这是如何安全的?
<?php
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
try {
//connect as appropriate as above
$db->query('hi'); //invalid query!
} catch(PDOException $ex) {
echo "An Error occured!"; //user friendly message
some_logging_function($ex->getMessage());
}
foreach($db->query('SELECT * FROM table') as $row) {
echo $row['field1'].' '.$row['field2']; //etc...
}
?>
Run Code Online (Sandbox Code Playgroud)
请注意,我确实理解它的作用,但它究竟对消毒输入做了什么呢?我知道只mysql_*使用mysql_real_escape_string文字的用法\.PDO是否使用同一系统?如果没有,我们在卫生方面依赖什么?
虽然查询中的输入似乎没有任何需要清理的内容。此外,如果您只是输入查询,它不会对其执行任何操作。
但它确实具有称为准备好的语句的魔力,这确实对您有帮助。您可以检查 @yourcommonsense 的链接以获取更多信息:
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |