Доктрина и SQL-инъекция - PullRequest
       4

Доктрина и SQL-инъекция

3 голосов
/ 22 декабря 2010

Doctrine автоматически предотвращает внедрение SQL-кода?
Безопасен ли следующий код?

$user = new Model_User();
$user->name = $_POST['username'];
$user->save();

Ответы [ 2 ]

4 голосов
/ 22 декабря 2010

Что касается внедрения SQL, думаю, проблем не будет.Но вы также можете убедиться, что имя пользователя правильно сформировано (может быть, например, <script>//do somthing bad</script>, и этот сценарий, например, будет выполняться при выводе этого имени пользователя где-то на сайте)

3 голосов
/ 22 декабря 2010

Вы будете защищены от внедрения SQL с помощью Doctrine (и любой другой библиотеки баз данных на основе PDO), если будете использовать связанные параметры (Doctrine будет использовать их под капотом, так что ваш пример хорош ), но вы никогда не должны использовать входные данные клиента без предварительной его очистки. Взгляните на библиотеку фильтров PHP - в частности пример очистки. В вашем случае вы хотели бы, по крайней мере, подтвердить, что имя является строкой, используя FILTER_SANITIZE_STRING «Обрезать теги, при желании вырезать или кодировать специальные символы.».

...