В соответствии с действующим RFC для Websocket, клиенты Websocket при отправке маскируют все данные внутри фреймов (но сервер не обязан). Причина, по которой протокол был разработан таким образом, заключается в том, чтобы предотвратить изменение данных фрейма вредоносными службами между клиентом и сервером (прокси и т. Д.). Однако маскирующий ключ все еще известен таким службам (он отправляется для каждого кадра в начале каждого кадра).
Неправильно ли я предположить, что такие сервисы все еще могут использовать ключ для снятия маскировки, изменения и затем перемаскирования содержимого перед передачей кадра в следующую точку? Если я не ошибаюсь, как это исправить предполагаемую уязвимость?
Маскировка бесполезна с
wss://
WebSockets через SSL / TLS. Поскольку рекомендуется использовать SSL / TLS всякий раз, когда это возможно, вы можете сделать разумный вывод о том, что маскирование охватывает случай предельного использования.источник