Груша DB_DataObject и ввод очистки - PullRequest
0 голосов
/ 08 октября 2009

Обычно я использую собственную функцию для очистки ввода перед добавлением значений в запрос для предотвращения sql-инъекций. Я также использую грушу DB_DataObject.

Я где-то читал, что DB_DataObject очищает сам ввод. Это правда? Могу ли я назначить неочищенный вход для объекта DB_DataObject? (А как насчет mysql_real_escape_string? Я получаю сообщение об ошибке, используя его в сочетании с DB_DataObject, поскольку соединение с БД еще не установлено)

Также мне любопытно, как другие люди очищают входные данные. Есть ли лучшая практика?

1 Ответ

1 голос
/ 11 октября 2009

DB_DataObject очищает входные данные, передаваемые по методам "-> set *", например,

Если предположить, что пользователь является 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]");

Надеюсь, это немного прояснит ...

...