У меня есть сервер nginx, который записывает POST $ request_body в файл. Когда я отправляю json на сервер, он заменяет кавычки (") на \ x22.
Моя конфигурация выглядит так
server {
server_name myServer;
listen 8180;
log_format logMyServer '$request_body';
location /myServer {
access_log /var/log/nginx/request_bodies.log logMyServer;
proxy_pass http://127.0.0.1:8000/;
break;
}
}
Вот как я генерирую запрос:
curl -H "Content-Type: application/json" -X POST -d '{"some":{"foo":"bar"}}' localhost:8180/myServer/
Мои вопросы:
\ x [число] обозначает шестнадцатеричный формат. Цитаты отбрасывают анализаторы журналов (в основном те, которые предполагают, что он будет использовать apache Общий формат журнала который окружает запросы кавычками, чтобы сохранить вместе метод, URL-адрес и версию). Это выглядит как кто-то жаловался на цитаты, который (вместе с уязвимостью терминального побега инъекции) - вот что привело к побегу. Похоже, патч так и не был изменен, чтобы вы могли его выключить.
Вам нужно будет разобрать их на своей стороне. Вы можете заменить \ x на%, чтобы соответствовать кодировке URL, или просто выполнить шестнадцатеричное преобразование самостоятельно.