Змішаний вміст за VPN: виправте ресурс, а не тунель
Замок описує документ, а не скрипти, які той завантажує. Прочитайте консоль, збережіть блокування, виправте посилання в його джерелі й потім перевірте сторінку знову.
Сторінка HTTPS, що завантажує скрипти через HTTP, робить два запити з двома різними рівнями захисту, і замок описує лише перший. Тунель цього не змінює, бо захищає носій, а не власну схему ресурсу. Браузер уже каже, який запит зазнав невдачі, якщо читати консоль, а не адресний рядок. Три перевірки ведуть від частково робочої сторінки до справжнього виправлення.
Читайте запит, а не адресний рядок
Документ, отриманий через HTTPS, може посилатися на скрипт, таблицю стилів, шрифт або фрейм через звичайний HTTP. Це посилання є окремим запитом, і саме на нього скаржиться браузер. Захист головного документа не поширюється назад на нього, а тунель, що несе обидва потоки, не змінює жодної схеми. Тож сторінка може бути водночас справді захищеною і справді зламаною.
Називати ресурс просто включеним файлом не робить його заміну нешкідливою.
Якщо небезпечний вміст скрипту можна змінити в дорозі, а потім виконати, він може змінити поведінку сторінки, а це більша проблема, ніж косметичний збій. Зображення несуть менший, але реальний ризик, коли їх змінюють у дорозі. Замок не бреше ні про що. Він відповідає на вужче питання, ніж те, яке ви йому поставили.
Знайте, які ресурси блокуються, а які підвищуються
Браузери ставляться до кожного типу ресурсу по-різному. рекомендації щодо змішаного вмісту розділяють запити, що підвищуються до HTTPS, і запити, що блокуються повністю: скрипти, таблиці стилів і програмні запити перебувають на заблокованому боці, а зображення й медіа можуть натомість підвищуватися або позначатися.
Саме ця різниця пояснює заплутані звіти. Сторінка із заблокованим скриптом повністю втрачає функцію, тоді як сторінка з підвищеним зображенням виглядає добре й тихо змінила свій запит. Задокументовані категорії також мають винятки, тож не припускайте, що кожен URL певного типу буде успішно підвищено. Читайте, що консоль каже про конкретний запит, замість того щоб міркувати від розширення файлу.
Заблокований віджет не є доказом, що тунель зазнав невдачі. Це доказ, що браузер виконав свою роботу.
Виправте посилання в його джерелі
Для власника сайту виправлення належить тому місцю, де було записано небезпечний URL: шаблон, таблиця стилів, скрипт, що збирає URL-адреси, або компонент третьої сторони. Зміна видимої адреси сторінки залишає все це недоторканим. Шукайте в джерелі хост і виправляйте кожне посилання, а не лише те єдине, яке консоль випадково назвала.
Потім переконайтеся, що ресурс справді надається через HTTPS із чинною ідентичністю, бо зміна схеми не може створити сервіс, який там ніколи не публікувався.
grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1Відстежуйте й переспрямування, бо посилання, що починається з HTTPS, усе ще може потрапити на шлях доставки відкритим текстом. Коли залежність просто не має безпечної доставки, видаліть або замініть її через звичайний процес змін, а не випускайте обхідне рішення. Для користувача залиште захисти браузера ввімкненими і повідомте власнику сайту URL ресурсу, його тип і повідомлення консолі. Ніколи не поширюйте інструкції, які велять персоналу дозволити небезпечний вміст для однієї сторінки, бо цей виняток переживає інцидент, що його спричинив.
Перевірте сторінку знову так, як її торкаються користувачі
Відпрацюйте операції, які завантажують ресурси на вимогу, а не лише перший документ. Сторінки підтягують додатковий код, дані та завантаження після натискання кнопки, і ці запити часто є небезпечними. Підтвердьте конкретні запити й видиму поведінку при ще ввімкненому захисті. Тест, що починається з ослабленого профілю браузера, не може показати, що бачить звичайний користувач.
Тунель і далі має власну роботу, і ця робота — мережевий доступ, а не цілісність сторінки.
Щойно трафік залишає кінцеву точку тунелю, будь-яке залишкове HTTP-завантаження нічого не отримало від носія. Виправте шлях ресурсу і залиште примус у браузері на місці. Ставитися до ще одного транспортного шару як до виправлення небезпечної залежності — це шлях, яким команда приходить до скрипту підтримки, що вимикає контроль, який працював правильно.