Как поправить фильтр?

nosferatum

Новичок
Как поправить фильтр?

Всем доброго времени суток!

Вопрос такой. Раньше, для фильтрации переменных использовал такую функцию-фильтр:

PHP:
function clearVariable( $in )
{
        $pattern = "/[^а-яА-Яa-zA-Z\s\'\"\-\!\@\*\_\(\)\[\]\{\}=+ \,\.\:\\\;\№\?\/]/";
        $in      = preg_replace($pattern,"", $in);
        $in      = trim($in);
        $in      = htmlspecialchars($in);
        return $in;
}
Теперь она не поможет, т.к. надо написать сайт на вьетнамском языке, а я не то что первой и последней, я вообще никаких букв оттуда не знаю. Да и с русскими символами там иногда бывают проблемы если работать с UTF-8.

Как можно грамотно подправить этот скрипт? Есть идея заменить
PHP:
/[^фыв]/
на
PHP:
/[фыв]/
и прописать туда только те символы, которые надо фильтровать, а какие символы должны подвергаться фильтрации?

Заранее спасибо за советы!
 

Фанат

oncle terrible
Команда форума
объясни, друг мой, что ты собрался фильтровать, и зачем.
 

nosferatum

Новичок
В том то как раз и проблема что \w некоторые символы обрезает, фиг знает почему... :(

А фильтровать я собрался входящие данные. Например
PHP:
$_REQUEST['name']
 

nosferatum

Новичок
To Vallar:

Спасибо, немного поправил, уже не обрезает... :) Но проблема решена временно. Возможно скоро буду искать иное решение.

To Фанат:

Что фильтруется:
Фильтруются любые входящие данные. Это может быть логин, пароль, мэйл, комментарий, телефон или просто значение $strModuleName для выбора нужного модуля и т.д.

Зачем:
Соответственно данные фильтруются для безопасности. Например, чтобы защититься от хтмл в комментах и мускул-инъекций к базе ставим htmlspecialchars(), если идёт в базу, то ещё и добавляем addslashes().

ИЗНАЧАЛЬНЫЙ ВОПРОС СНЯТ, ПОЯВИЛСЯ ДРУГОЙ:

Что-то мне подсказывает что обрезаение ненужных символов, trim(), htmlspecialchars() и addslashes(). Полной безопасности не обеспечивает. Достаточно ли это надёжно? Вроде народ на форумах говорит что этого хватит, мне же кажется что это не достаточно надёжно!
 

Фанат

oncle terrible
Команда форума
Соответственно данные фильтруются для безопасности
Ты не забыл ещё свой вопрос, случайно? Ты рассказал об htmlspecialchars() и addslashes(). Но про регулярное выражение, ПРО КОТОРОЕ ЗАДАВАЛ ВОПРОС, не написал ничего. а меня интересовало именно оно. Что ты им отфильтровываешь, и зачем?
Но посмотрим на то, что ты написал дальше.
Например, чтобы защититься от мускул-инъекций к базе ставим htmlspecialchars(), если идёт в базу, то ещё и добавляем addslashes().
не понял смысла этого предложения.
htmlspecialchars() защищает от мускул инъекций, когда запрос не идёт в базу? Это как?
Что-то мне подсказывает что обрезаение ненужных символов, trim(), htmlspecialchars() и addslashes(). Полной безопасности не обеспечивает.
Что именно подсказывает? Какая именно безопасность имеется в виду?

Какую именно безопасность обеспечивает обрезание ненужных символов? Какие символы являются ненужными?

Не забудь, пожалуйста, ответить на все вопросы. В первую очередь это нужно тебе.
 
Сверху