Назад | Перейти на главную страницу

Принять настраиваемое поле заголовка «Тип содержимого» в apache

Мое приложение отправляло запрос с полем заголовка "Content type" [sic] и значение "form-data" [sic] на сервер. Хотя это кажется неправильным - похоже, это не вызывало никаких проблем еще пару дней назад. Затем что-то произошло (администратор установил обновление безопасности или около того), и теперь сервер лампы возвращается 400 bad request, чего и следовало ожидать.

Хотя я мог бы обновить приложение, чтобы отправлять правильные значения заголовков, но мне это не разрешено по требованию клиента - и мне нужно иметь возможность вернуть / принять неверный запрос, поскольку он работал раньше.

С любым другим сервером, похоже, он будет работать нормально, но на моем сервере и локальном компьютере приложение теперь получает 400 bad request вернулся.

Есть идеи, как я могу заставить это работать? Я думаю, что администратор сервера установил какое-то обновление безопасности, и эта проблема появилась, но я не могу каким-либо образом ее исправить. Даже создание нового сервера не решает эту проблему.

Я видел какой-то модуль 'mod_headers' для apache, который, я думаю, может позволить мне принять настраиваемый искаженный заголовок "Content type" но не уверен, что это правильный путь.

Это все, что я получаю в журнале сервера моего локального компьютера (снимок экрана журнала доступа):

Почему вы не можете соответствовать стандартам?

RFC 7230, Синтаксис и маршрутизация сообщений HTTP / 1.1, Раздел 3.2:

3.2. Поля заголовка

Каждое поле заголовка состоит из имени поля без учета регистра, за которым следует двоеточие (":"), необязательного начального пробела, значения поля и необязательного конечного пробела.

 header-field   = `field-name ":" OWS field-value OWS`

Если это работало, это было неправильно. Обновите свое приложение, чтобы использовать стандартный HTTP / 1.1 Content-Type: type/subtype вместо этого заголовок предоставляет стандартный тип MIME. Тогда вам не нужны какие-либо обходные пути или хаки, чтобы ваш веб-сервер работал в соответствии со стандартами.