@jensen6720185

Очистка и валидация данных в $_POST?

Делаю модификации в wp child theme, и есть массив данных который передается через $_POST, и данные в основном либо цифры, либо строки. Возник вопрос по поводу очистки и валидации. Я делаю это так, перед использованием $_POST использую nonce и wp_verify_nonce() и после

$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
и далее использую так $_POST['sample_value'];

Этого достаточно или нужно дополнительно каждую переменную фильтровать так?
$num_value = filter_var($_POST['sample_value'], FILTER_VALIDATE_INT); // Если число
$string_value = filter_var($_POST['sample_value2'], FILTER_VALIDATE_STRING); // Если строка

Мне нужно знать не как сойдет, а как правильно = )
Спасибо
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
Expany
@Expany
$this->get('skill');
nonce - это похоже на защиту от CSRF атак(атаки с подменой).
Устройство filter_var() для валидации входящих данных.

Этого вполне должно быть достаточно для фильтрации данных, но исходя из личной паранойи, я бы добавил еще:
функция всяких экранирований
function filter_data ($value, $db) {
    $quotes = array ("\x27", "\x22", "\x60", "\t", "\n", "\r", "*", "%", "<", ">", "?", "!","-", "+", "#");
    $value = trim($value);
    $value = preg_replace("/[\r\n]{3,}/i", "\r\n\r\n", $value);
    $value = stripslashes($value);
    $value = strip_tags($value);
    $value = str_replace($quotes, '', $value);
    $value = $db->real_escape_string($value);
    return $value;
}



И возможно что-нибудь еще, для большей паранойи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы