LinuxForum.Fans
Тема

PHP: Зачем эта функция?

Автор: Sonic 4 сообщений 1866 просмотров
#77783

Уже замучался, гуглил... но ничего хорошего в голову не идет :)

text

// Strip out "bad" UTF-8 characters
function forum_remove_bad_characters()
{
    global $bad_utf8_chars;

$bad_utf8_chars = array("\0", "\xc2\xad", "\xcc\xb7", "\xcc\xb8", "\xe1\x85\x9F", "\xe1\x85\xA0", "\xe2\x80\x80", "\xe2\x80\x81", "\xe2\x80\x82", "\xe2\x80\x83", "\xe2\x80\x84", "\xe2\x80\x85", "\xe2\x80\x86", "\xe2\x80\x87", "\xe2\x80\x88", "\xe2\x80\x89", "\xe2\x80\x8a", "\xe2\x80\x8b", "\xe2\x80\x8e", "\xe2\x80\x8f", "\xe2\x80\xaa", "\xe2\x80\xab", "\xe2\x80\xac", "\xe2\x80\xad", "\xe2\x80\xae", "\xe2\x80\xaf", "\xe2\x81\x9f", "\xe3\x80\x80", "\xe3\x85\xa4", "\xef\xbb\xbf", "\xef\xbe\xa0", "\xef\xbf\xb9", "\xef\xbf\xba", "\xef\xbf\xbb", "\xE2\x80\x8D");

function _forum_remove_bad_characters($array) { global $bad_utf8_chars; return is_array($array) ? array_map('_forum_remove_bad_characters', $array) : str_replace($bad_utf8_chars, '', $array); }

$_GET = _forum_remove_bad_characters($_GET); $_POST = _forum_remove_bad_characters($_POST); $_COOKIE = _forum_remove_bad_characters($_COOKIE); $_REQUEST = _forum_remove_bad_characters($_REQUEST); }

Кто может раскурить, что это за "плохие" символы?

#77822

Функция чистит содержимое переменных от "лишних" символов.

Я их коды точно не знаю, но наверное это разного рода кавычки и т.д.

#77869
Sonic написал:
Кто может раскурить, что это за "плохие" символы?

ну всякая гадость...
Посмотреть на них можно так:

text
echo -e "\xe2\x80\x84"

Если конечно есть такой фонт (я например вообще не вижу, хотя sed считает ЭТО за один символ)
Возможна атака на скрипт, в случае если это НЕСИМВОЛ, по мнению какой-то утилиты (например того-же php). Здесь подробнее.

#78026

elve, drBatty, спасибо :)

Войдите или зарегистрируйтесь, чтобы ответить.