экранирование ввода в php - PullRequest
       8

экранирование ввода в php

0 голосов
/ 04 октября 2010

Я написал код ... но теперь я не знаю, какая версия лучше .. Есть ли вероятность, что в 1-й версии мой код уязвим?

Версия 1:

$destination = $_POST['var'];
$destination = strip_tags(trim($destination));

Версия 2:

$destination = strip_tags(trim($_POST['var']));

Ответы [ 6 ]

4 голосов
/ 04 октября 2010

Поскольку ни strip_tags, ни trim не изменяют входную строку, между двумя версиями нет абсолютно никакой разницы .

0 голосов
/ 04 октября 2010

Обе версии одинаковы с точки зрения уязвимости.Если вас беспокоит инъекция, вы можете включить addlashes ().

Что лучше?Версия 2 будет на самом деле немного быстрее.Установка другой переменной - это просто ненужный шаг в этом процессе.Я бы предположил, что версия 1, хотя и не технически неправильная, является плохой практикой.Несмотря на то, что полученное значение одинаково.

0 голосов
/ 04 октября 2010

Ну, strip_tags все еще можно использовать.Немного лучшим решением может быть следующее:

$destination = htmlentities(trim($_POST['var']));

Однако этого по-прежнему недостаточно, если $ _POST ['var'] войдет в базу данных, необходимо выполнить дополнительную работу.

Убедитесь, что вы понимаете, что именно делает htmlentities (), прежде чем внедрять его в свой код на рабочем уровне.

0 голосов
/ 04 октября 2010

Обе версии означают то же самое, вы можете использовать любую. По моему мнению, вы должны использовать filter_var , чтобы отфильтровать входную строку ...

0 голосов
/ 04 октября 2010

Оба фрагмента одинаковы. Некоторые люди скажут, что первое лучше для удобочитаемости, а некоторые скажут, что второе лучше для краткости.

0 голосов
/ 04 октября 2010

Они оба абсолютно одинаковы.
Для чего вы избегаете ввода? База данных? XSS?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...