Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Фильтрация входящих данных

Фильтрация входящих данных


     24.01.2013    Все вопросы » Общие вопросы по PHP    2924

вопрос
Подскажите пожайлуста, для фильтрации входящих данных, допустим в форму достаточно функции htmlspecialchars, или возможно нужная еще какаето функция или же нужно подменить, еще какие то символы. Подскажите пожалуйста из опыта, какие функции еще лучшем использовать для фильтрации.

Ответа пока нет


10 комментариев

nowheremany
Эксперт

nowheremany - 24 января 2013 16:06 -

Пропустил неточный вопрос по причине его позновательности.
В инете полно информации по этому поводу, все зависит от типа данных, на вход этой фильтрации.
Предлагайте свои варианты

Благодарность принимаю тут Связь

hatchees
Юзер

hatchees - 24 января 2013 16:58 -

допустим есть форма заполнения имени при регистрации,

$name = trim(htmlspecialchars($_POST['name']));

На мой взгляд этого достаточно защищенный пост запрос. Ранее писал фильтрацию через str_replace. Этого достаточно, что бы защитить форму он попытки вветли вредоносный код?

shadow6630
Юзер

shadow6630 - 24 января 2013 20:27 -

hatchees,
а что вам мешает посмотреть как это реализовано в других КМС, даже в тоя самой DLE ?

nowheremany
Эксперт

nowheremany - 25 января 2013 09:31 -

Не совсем правильно.
Получается проходят имена пользователей со спец символами. нужно убирать тэги через striptags. И trim надо делать к имени сразу, а не после обработки. ведь htmlspecialchars более нагруженная функция чем trim

Благодарность принимаю тут Связь

hatchees
Юзер

hatchees - 24 января 2013 21:21 -

Я уже посмотрел, в некоторых ситуациях у них входящие данные вообще не фильтруются эти все баги выложены на античате, я же хочю спросить как делать лучше, то есть правильней!

TheImDim
Юзер

TheImDim - 25 января 2013 13:31 -


function myParse($text) {
    
    $text = addslashes($text);
    
    $search = array ("'<script[^>]*?>.*?</script>'si",  "'<[\/\!]*?[^<>]*?>'si", "'([\n])'");

              $replace = array ("", "", "<br/>");
    $text = preg_replace($search, $replace, $text);
    return $text;
}

nowheremany
Эксперт

nowheremany - 25 января 2013 14:36 -

<a href="javascript:alert('123')">Тадам</a>

Сомнительная фильтрация

Благодарность принимаю тут Связь

TheImDim
Юзер

TheImDim - 25 января 2013 15:02 -

А теперь внимательно посмотри на этот кусок кода:

"'<[\/\!]*?[^<>]*?>'si"

dj-avtosh
шашлычник

dj-avtosh - 6 февраля 2013 04:51 -

почему-то ни разу не увидел mysql_real_escape_string ..........

skype: elhan.isaev

ПафНутиЙ
Админ

ПафНутиЙ - 6 февраля 2013 09:47 -

Предлагаю перенести этот вопрос в раздел блог, и "вырастить" пост в небольшой мануал о том, как правильнее делать.

Каков вопрос - таков и ответ. Просто помните об этом.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх