Я использую Apache Thrift для перемещения небольших файлов в кодировке base64 на серверную часть PHP (с веб-сервером Apache). По сути, это просто запрос HTTP POST с большими объемами необработанных данных тела. Я хочу ограничить объем POST-данных, чтобы я даже не пытался обрабатывать файлы размером больше, чем моя цель (у меня также будет небольшой memory_limit). Чтобы проверить это, я установил в php.ini:
post_max_size=1K
Затем я подтвердил, что мои настройки были правильно выбраны, запустив phpinfo()
,
Тем не менее, при размещении примерно 12K исходных текстовых данных на моем сервере, я все равно могу получить полное содержимое, используя
file_get_contents("php://input");
Насколько я понимаю, PHP просто удалит данные, если post_max_size будет превышен, вместо того, чтобы выдавать ошибку или исключение. Посредством поиска того, как работает post_max_size, кажется, что информация всегда связана с загрузкой файлов, а не с необработанным телом сообщения. Действительно ли параметр ini post_max_size не учитывает необработанный размер запросов на публикацию в дополнение к данным о добавленных файлах? Почему, когда мой post_max_size превышен, я все равно получаю все, что было опубликовано? Как я могу предотвратить обработку запроса или обработку больших данных, если размер необработанных данных тела POST превышает мой лимит? Любая помощь с благодарностью.
Задача ещё не решена.
Других решений пока нет …