что такое фильтрация недопустимого utf8 с моего сайта PHP?
Мой сайт полностью преобразован для использования utf-8, (mysql, HTTP заголовки, PHP mb_string и т.д.).
Я провожу тестирование на проникновение и пытаюсь отправить недопустимый utf в один из скриптов (используя BurpSuite).
Но когда я публикую недопустимый utf, просто шестнадцатеричный дамп $_POST var, я вижу, что недопустимая последовательность utf уже была санирована, прежде чем я попытаюсь проверить ее с помощью mb_detect_encoding.
Это звучит как хорошая новость для меня, но я хочу знать, какой слой является преобразование почтовых данных?
Является ли это побочным эффектом HTTP-заголовка Content-Type, возможно, это делает мой веб-сервер (lighttpd). Или это делает сам PHP, когда заполняет $_POST?
Я ожидал увидеть недействительный utf hexdumped, предоставив мне самому его санировать.
1 ответ:
Сам PHP не фильтрует POST-данные, он просто обрабатывает их как двоичные данные, которые всегда "валидны" (это просто данные, ничего не нужно проверять).
Поэтому я подозреваю, что есть какой-то модуль с вашим веб-сервером, который изменяет данные, или есть какое-то расширение PHP, которое фильтрует данные.
Проверьте, установлен ли на вашем веб-сервере веб-брандмауэр и список расширений, которые вы загружаете с помощью PHP, и есть ли что-то, связанное с фильтрацией ввода.