Php 你还需要数据库安全吗?
这是一个针对PDO准备的语句的安全问题。使用PDO,我知道sql注入的风险实际上是不可能的,并且该类可以为您处理所有这些。使用mysql_*stack之后,我总觉得自己在处理安全问题方面做得不够好。我通常习惯于编写数百行代码来处理安全问题,而现在我实际上只是编写查询Php 你还需要数据库安全吗?,php,mysql,pdo,Php,Mysql,Pdo,这是一个针对PDO准备的语句的安全问题。使用PDO,我知道sql注入的风险实际上是不可能的,并且该类可以为您处理所有这些。使用mysql_*stack之后,我总觉得自己在处理安全问题方面做得不够好。我通常习惯于编写数百行代码来处理安全问题,而现在我实际上只是编写查询 除了数据库中字符串的长度之外,PDO语句是否真的存在任何我必须担心的安全威胁?对于“sql注入攻击”,我认为答案几乎是肯定的。 还有许多其他类型的攻击,但至少您的所有值都被转义 依靠PDO“修复”您的安全就像依靠编译器查找您的bu
除了数据库中字符串的长度之外,PDO语句是否真的存在任何我必须担心的安全威胁?对于“sql注入攻击”,我认为答案几乎是肯定的。 还有许多其他类型的攻击,但至少您的所有值都被转义
依靠PDO“修复”您的安全就像依靠编译器查找您的bug一样。肯定是。 事实上,母语编写的陈述仅适用于简单的教科书案例。
这意味着你仍然需要为任何复杂的情况写上“数百行”。我在报纸上对这些案件做了一个小摘要。主要缺点是
- 标识符没有占位符。您必须像旧的好mysql代码一样手动格式化和注入它们
- 数组没有占位符。这意味着您仍然需要手动编写一些代码,然后将其注入查询中——因此,仍然有可能陷入一些麻烦李>
只需将这些2行程序与您需要使用原始PDO编写的代码量进行比较。这有点像是在问“在编程中我需要关注哪些安全问题?”可能太宽泛了。看看这个答案,实际上我认为这是一个定义相当明确的问题,基本上,“POD不能自动防范哪些安全威胁“我喜欢,里面没有100%安全的东西。PDO只是另一道防线。在将输入传递到查询之前,您仍然应该验证它们……PDO只是保护您不受SQL相关内容的影响。web上还有许多其他安全风险,从简单的Javascript注入到更“奇特”的问题,如与字符编码有关的XSS攻击。这些事情大部分都是通过你准备好的陈述来完成的。
$sql = "SELECT * FROM articles WHERE id IN(?a) ORDER BY ?n LIMIT ?i"
$data = $db->getAll($sql, $ids,$_GET['order'], $limit);
$sql = "INSERT INTO stats SET pid=?i,ip=inet_aton(?s),?u ON DUPLICATE KEY UPDATE ?u";
$db->query($sql, $pid, $ip, $data, $data);