Когда страница предоставляет защищенные и небезопасные элементы по протоколу https, являются ли они скомпрометированными?


Я не уверен на 100%, что использую правильную терминологию, или если я упускаю информацию, которая требуется для ответа. Поэтому, пожалуйста, будьте терпеливы со мной.

Мой клиент хочет включить видеопоток из внешнего источника в зону участников своего веб-сайта. Область участников передается по протоколу https, а видеопоток-нет. Компрометирует ли это защищенные данные?

Я знаю, что некоторые браузеры предупреждают пользователя о том, что на страницу загружаются Безопасные и небезопасные данные. Честно говоря, мой клиент согласен с этим, но я не хочу двигаться вперед, если информация об учетной записи Пользователя(в частности, сессия и т. д.) скомпрометирован.

Спасибо за любую помощь.

2 2

2 ответа:

Если ваши страницы ссылаются на незашифрованный Javascript или Flash, вы полностью незащищены; злоумышленник может заменить любой Javascript, который он хочет, и может украсть файлы cookie, не относящиеся только к HTTP, или сделать произвольные HTTP-запросы, которые олицетворяют текущего пользователя.

Если вы ссылаетесь на незашифрованный CSS, вы все еще уязвимы; злоумышленники могут произвольно изменять ваш макет, а может выполнять произвольный код в IE и Firefox.

Если вы ссылаетесь на незашифрованные изображения, вы в основном в порядке; все злоумышленник может увидеть заголовок реферера и узнать, какую страницу видит пользователь. (Он также получит любые не-SSL-только куки для домена изображения). Атакующий также может изменять изображения в соответствии со своими потребностями, что может быть проблемой.

Если вы идентифицируете своего пользователя на основе файла cookie, например, используя стандартный SessionId, то вы уязвимы, даже если ссылаетесь только на статические изображения.

По умолчанию браузер пользователя повторно отправляет файл cookie сеанса длякаждого запроса на тот же хост, независимо от протокола. То есть вы надежно аутентифицировали своего пользователя, используя HTTPS в своей форме входа, и гарантируете, что продолжите использовать HTTPS для всех конфиденциальных страниц...
Однако вы также включаете "нечувствительные" изображения по протоколу HTTP... браузер пользователя с радостью отправит чувствительный сессионный файл cookie по незашифрованному, незащищенному, простому тексту HTTP, когда запрашивает эти изображения.
Тогда это просто вопрос захвата этого куки из HTTP, и олицетворение ваших пользователей обратно на защищенной части сайта.

Обратите внимание, это по умолчанию. Вы можете изменить это поведение, добавив атрибут secure; в файлы cookie. В зависимости от вашего фреймворка, вы можете настроить его на автоматическое выполнение. Снова, это не по умолчанию, вы должны явно изменить его.
И в то же время добавьте атрибут httpOnly;.