PHP очищает и проверяет процедуру ввода для simplexml?

#php #html

#php #HTML

Вопрос:

Я передаю содержимое полей ввода текстовой области через POST в мой php-файл из html (javascript не разрешен).

Затем я использую simplexml для получения фида по URL, введенному пользователем.

К сожалению, пользователь может вводить что угодно в текстовую область. Мне сказали, что это опасно.

Каков рекомендуемый способ очистки и защиты содержимого POST с помощью PHP, чтобы они были готовы и безопасны для процедуры simplexml?

(в основном, чтобы убедиться, что они не являются вредоносными, и проверить, что они являются допустимым URL)

Ответ №1:

Содержимое внутри массива $ _POST — это строки, поэтому там нет ничего небезопасного.

  1. Пользователь вводит php-код? Это, конечно, не будет выполнено, поэтому здесь нет проблем (это, среди многих других, является причиной не использовать такие вещи, как eval()). Поэтому, какую бы функцию или команду php он ни написал, она будет прочитана как простая строка, а string не являются вредными, что бы они ни содержали.
  2. Пользователь вводит вредоносный javascript? По-прежнему нет проблем, поскольку javascript внутри php или внутри базы данных, если это имеет значение, довольно бесполезен, поскольку для его выполнения требуется браузер.

Это приводит к реальной проблеме: предоставленное пользователем содержимое должно быть «очищено» только непосредственно перед передачей его на целевой носитель. Если вы собираетесь загружать базу данных, используйте инструменты экранирования, предоставляемые вашим движком. Если вы собираетесь выводить его на веб-странице, именно тогда вам нужно очистить от вредоносных XSS-атак.

Очистка массива POST сама по себе, прежде чем что-либо делать с его содержимым, неверна, поскольку вы никогда не знаете наверняка, когда и где это содержимое нужно использовать; поэтому даже не думайте использовать strip_tags() или аналоговые функции, которые приходят вам на ум сразу после получения значения POST, нопередайте его как есть и добавьте необходимое экранирование / дезинфекцию только тогда, когда это необходимо.

Что вам на самом деле нужно делать, тогда вы только знаете, поэтому действуйте соответственно

Ответ №2:

Мне сказали, что это опасно.

это неправильно.

Каков рекомендуемый способ очистки и защиты содержимого POST

боюсь, что нечего защищать

Комментарии:

1. Ну, а как насчет «echo», «взломанного»; но взломанная часть может быть опасным исполняемым кодом. Это опасно, как я могу это остановить?

2. опасно? кто тебе это сказал? скажите ему, что он понятия не имеет