очистка $ _POST переменные [дубликат]

Система. Сеть. WebClient является самым легким способом сделать, это для простого ПОЛУЧАЕТ запрос. Однако, если необходимо сделать запрос POST на форму тогда, необходимо будет использовать Систему. Сеть. HttpWebRequest.

13
задан tscully 22 October 2009 в 23:33
поделиться

5 ответов

То, что вы делаете, недостаточно. См. здесь .

7
ответ дан 1 December 2019 в 18:55
поделиться

, чтобы сделать рекурсию более элегантной, вы можете использовать что-то вроде array_map , например:

$_POST = array_map('mysql_real_escape_string',$_POST);

Используйте filter var, если можете, хотя такие подходы обычно плохие, просто пример хотя;)

7
ответ дан 1 December 2019 в 18:55
поделиться

Используйте filter_input , если это возможно (php5 +). Это делает его намного чище, и, насколько мне известно, вы можете дезинфицировать и проверять все, что вам может понадобиться, используя его.

Вы можете использовать массив переменных фильтра и, например, флаг FILTER_SANITIZE_STRING , чтобы отфильтровать весь массив сообщений

filter_var_array($_POST, FILTER_SANITIZE_STRING) //just an example filter

В справочнике по фильтрам w3schools

22
ответ дан 1 December 2019 в 18:55
поделиться

снятые флажки не отправляются на сервер.

вы можете использовать array_walk_recursive , чтобы делать то, что вы хотите

2
ответ дан 1 December 2019 в 18:55
поделиться

Это неправильный способ очистки ввода.

Придет применение бланкетного экранирования mysql абсолютно ко всему в $ _ POST и $ _ GET в ответ и укусить вас, если вы все еще хотите использовать данные после того, как вы сделали запрос к базе данных, но вам не нужны escape-символы.

Используйте параметризованные запросы с mysqli или PDO, и вам никогда не придется использовать mysql_real_escape_string () .

2
ответ дан 1 December 2019 в 18:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: