Недавно я работал над некоторым алгоритмом подписи запросов, и выяснилось, что мнения о включении строки запроса в часть, которая затем подписывается, «разнообразны».
Короче говоря, аргумент человека против включения строки запроса в строку для подписи состоит в том, что строки запроса могут быть изменены (например, значения могут быть изменены, аргументы могут быть удалены / добавлены, порядок может быть изменен).
Также я никогда не сталкивался с таким поведением в прокси или балансировщике нагрузки, хотя я испытал такие вещи, как скрытие Authorization
заголовок (например, Apache / WSGI), изменяя метод запроса (балансировщиком нагрузки, возможно, серверы Amazon это делают). Я знаю, что такое поведение можно включить на обратном прокси-сервере или балансировщике нагрузки, используя некоторые настраиваемые сценарии / правила, но это можно сделать с помощью любой часть запроса.
Было проделано много работы на основе предположения, что строка запроса должна быть включена, плюс выглядит глупо, если не подписать одну из наиболее важных частей запроса. Таким образом, мне нужно знать, будет ли включение строки запроса в необработанной форме (поскольку она передается в URL-адрес) проблемой в будущем или нет.
Итак, мой вопрос:
Часто ли прокси или балансировщик нагрузки изменяют строки запроса? Мне это кажется глупым. Знаете ли вы какой-либо прокси или балансировщик нагрузки (программное обеспечение или его установка), который делает это по умолчанию?
Я уверен, что в таком случае мы сможем выполнить проверку подписи на уровне прокси / балансировщика нагрузки, но это может быть жизнеспособным аргументом, если это распространено среди посредников, которых мы не контролируем.
Пожалуйста, дайте мне знать, что вы об этом знаете. Дайте знать, если у вас появятся вопросы.
В качестве пояснения автор Строка запроса Я имею в виду "?arg1=val1&arg2=val2
"часть следующего URL:
http://example.com/something/else?arg1=val1&arg2=val2
И по "изменение строки запроса"Я имею в виду любое действие, которое могло бы заставить его выглядеть по-разному для клиента и для сервера (сервер видит строку запроса, отличную от той, которую использовал клиент).
Я еще не видел прокси, который бы это делал, но он может быть жизнеспособным решением для закрепления сеанса, если вы не можете сделать это для каждого IP-адреса и хотите, чтобы он работал, даже если у пользователя отключены файлы cookie.
Многие современные обратные прокси-серверы могут изменять строки запроса. Но я не вижу причин, по которым балансировщик нагрузки или прокси будет делать это по умолчанию.
Возможно, он использует URI для липкой балансировки нагрузки сеанса, но это было бы действительно глупо.
Итак: Нет, я не знаю ни одного балансировщика нагрузки, изменяющего uri и параметры по умолчанию.