Pear DB_DataObject和输入清理

时间:2009-10-08 08:43:03

标签: php mysql pear

我通常使用自己的函数来清理输入,然后在查询中添加值以防止sql注入。我也使用pear DB_DataObject。

我读到DB_DataObject清理输入本身。这是真的?我可以将未清理的输入分配给DB_DataObject对象吗? (那么mysql_real_escape_string?,我在使用它与DB_DataObject结合时会出错,因为还没有与DB建立连接)

另外我很好奇其他人如何清理输入。有最好的做法吗?

1 个答案:

答案 0 :(得分:1)

DB_DataObject清理在“ ​​- > set *”方法上传递的输入,例如

假设User为DB_DataObject,以下都是安全的:

 
$user = new User;
$user->firstName = $_REQUEST['first'];
$user->setFirstName($_REQUEST['first'];
$user->setFrom($_REQUEST);

实际上在SQL片段中传递的任何方法都不安全,例如:


$user->selectAs($_REQUEST['col']. ', first as name');
$user->whereAdd("first=$_REQUEST['first]");

希望稍微澄清一下......