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]");
Надеюсь, это немного прояснит ...