Почему Safari помечает Flask-сайт как мошеннический и как это исправить
Владельцы сайтов на Flask нередко сталкиваются с ситуацией, когда браузер Safari отображает красную табличку с предупреждением о возможном мошенничестве. При этом в Chrome, Firefox или Edge такой проблемы нет. Разберём причины и способы решения.
Причины появления предупреждения в Safari
Safari использует собственную систему безопасности - Safebrowsing (Google Safe Browsing) и внутренние алгоритмы Apple. Красная табличка появляется, если сайт не соответствует критериям безопасности браузера. Наиболее частые причины для Flask-сайтов:
- Отсутствие SSL-сертификата - сайт работает по HTTP, а не HTTPS. Safari строго предупреждает о незащищённом соединении.
- Некорректные HTTP-заголовки - отсутствие заголовков безопасности (например,
X-Content-Type-Options,Content-Security-Policy). - Подозрительный контент - ссылки на внешние ресурсы без HTTPS, встроенные скрипты с недоверенных доменов.
- Низкий рейтинг домена - новый домен или IP-адрес, который ранее использовался для спама.
- Ошибки в конфигурации Flask - например, включённый режим отладки (
debug=True) на продакшене.
Пошаговое решение проблемы
1. Установите SSL-сертификат
Переведите сайт на HTTPS. Используйте Let's Encrypt (бесплатно) или платный сертификат. Для Flask настройте перенаправление с HTTP на HTTPS через flask-talisman или на уровне Nginx/Apache.
2. Добавьте заголовки безопасности
Установите и настройте библиотеку flask-talisman:
from flask_talisman import Talisman
Talisman(app, content_security_policy={
'default-src': ["'self'"],
'img-src': ["'self'", 'https:'],
})Это добавит заголовки X-Content-Type-Options: nosniff, X-Frame-Options: DENY и другие.
3. Проверьте контент на подозрительные элементы
Убедитесь, что все внешние ссылки и ресурсы (шрифты, скрипты, изображения) загружаются по HTTPS. Избегайте iframe с недоверенных доменов. Используйте инструмент Mobile-Friendly Test от Google для проверки.
4. Отключите режим отладки
В продакшене всегда устанавливайте debug=False и используйте переменные окружения для секретных ключей.
Дополнительные меры
- Проверьте репутацию домена - используйте сервисы VirusTotal или Google Safe Browsing.
- Отправьте сайт на проверку в Apple - хотя это может занять время, через форму reportaproblem.apple.com можно ускорить процесс.
- Установите
flask-sitemapдля генерации sitemap и улучшения индексации.
Что делать, если ничего не помогает
Если после всех шагов Safari продолжает показывать предупреждение, попробуйте временно сменить хостинг или IP-адрес. Иногда проблема связана с блокировкой подсети. Также можно добавить сайт в исключения через Safari → Настройки → Конфиденциальность → Безопасность → Отключить защиту от мошеннических сайтов (только для тестирования).