
Правила безопасности Cloudflare Free Plan (подход Zero Trust) для небольших сайтов
Я — Aksana (5Ksana), основательница open-source проекта BitcoinArt. Мой муж, Aliaksandr (ALEX) Zasinets, помогает с безопасностью, тестированием и open-source инструментами. Aliaksandr — QA Automation Engineer, Penetration Tester и open-source исследователь в области безопасности. Он занимается безопасностью сайтов, защитой Cloudflare, правилами WAF, защитой от DDoS, security-заголовками, защитой от ботов и защитой от вредоносных сканеров. Apple поблагодарила Aliaksandr за обнаружение и сообщение о проблемах безопасности в веб-серверах.
Он указан в Apple Security Acknowledgements:
https://support.apple.com/en-ug/102774
Этот репозиторий, cloudflare-security-art, — бесплатное руководство по безопасности для небольших сайтов, художников, создателей и self-hosted проектов, использующих Cloudflare. Если этот проект помогает вам защитить ваш сайт, пожалуйста, поддержите нашу open-source работу через GitHub Sponsors:
https://github.com/sponsors/buybitart
Ваша поддержка помогает нам тестировать правила безопасности Cloudflare, обновлять это руководство, писать простые примеры и сохранять этот проект бесплатным. Если этот репозиторий помог вам, пожалуйста, также поставьте ему звезду ⭐. Это помогает проекту расти. Спасибо! ❤️
Это руководство поможет вам защитить ваш сайт с помощью Cloudflare. Оно включает правила файрвола, защиту от DDoS, security-заголовки и настройки для ботов.
Оно включает:
Моё правило Cloudflare:
AI-боты пытаются скопировать ваш контент!. Смотрите Как AI крадёт ваше искусство и «Массовая кража»: тысячи художников требуют отменить аукцион AI-искусства
«Одна из главных целей искусства — диалог с культурой.
Даже если это непреднамеренно, каждое произведение искусства отражает уникальный опыт своего создателя — сформированный едой, религией, музыкой, этикой, визуальным искусством и многим другим.Представьте ребёнка, выросшего в изоляции, которому показывают только картины 16 часов в день и наказывают, если его еженедельный рисунок недостаточно точно повторяет эти изображения. Он не знает, почему рисует — он просто имитирует. Он не создаёт. Он не ведёт диалог с искусством.
Компьютер ещё проще. Он не чувствует, не размышляет, не помнит звук джаза 1920-х или момент, когда впервые увидел Уорхола.
Но человеческий художник помнит.
Он несёт опыт, эмоции и намерение. Он заимствует из прошлого, смешивает с настоящим и говорит своим собственным голосом. Это искусство. Вот в чём разница.Когда искусство — просто имитация ради прибыли, оно пусто. Но когда оно говорит — оно имеет значение.»
AI притворяются поисковыми системами, но они не приводят вам посетителей.
Некоторые даже используют поддельные user agent, поэтому базовые настройки Cloudflare могут их не остановить.
Это правило блокирует всех ботов по умолчанию, а затем разрешает только полезных ботов, которые помогают индексировать ваш сайт.
| Шаг | Описание |
|---|---|
| ШАГ 1 – Правила Web Application Firewall (WAF) | Блокирует ботов, краулеров, эксплойты и вредоносные запросы (Части 1‑5). |
| ШАГ 2 – Защита от DDoS L7 и ограничение скорости | Добавляет переопределение Layer‑7 и лимиты скорости для остановки флуда. |
| ШАГ 3 – Управление ботами | Настраивает параметры ботов Cloudflare для блокировки AI и нежелательных ботов. |
| ШАГ 4 – Security-заголовки | Устанавливает рекомендуемые HTTP-заголовки для усиления защиты сайта. |
[!IMPORTANT]
Также рекомендуется отключить функциюBot Fight Modeна вкладкеSecurity.
Это руководство уже блокирует всех нежелательных ботов и AI-краулеров, разрешая только важных и доверенных ботов, используемых для индексации вашего сайта, таких как:
- bing
- slurp
- duckduckbot
- cloudflare
Поэтому нет необходимости включать Bot Fight Mode, так как это может помешать этим разрешённым ботам и нарушить правильную индексацию.
Скопируйте эти выражения в вашу панель управления Cloudflare для пользовательских правил WAF.
Читайте Create a custom rule in the dashboard.
Это правило останавливает вредоносный автоматизированный веб-трафик, проверяя каждый запрос и блокируя пустые или странные имена User‑Agent, такие как headless-браузеры или сканеры, а также трафик из определённых IP-групп, использующих "siteaudit", и Host-заголовки, содержащие ":80" или ":443", и неправильные cookies Cloudflare, и любой Cloudflare client.bot, который не является подтверждённым поисковым краулером или ACME-челленджем, и любой запрос HTTP/1.0 или HTTP/1.1, если он не запрашивает "/robots.txt", не исходит от настоящего поискового бота или ACME-проверки.
NOTE🔒 Это правило останавливает около 90% всех угроз. Оно отсекает вредоносный трафик ботов до того, как он достигнет приложения.
Действие: Block
(
(
http.user_agent eq ""
or http.user_agent eq " "
or http.user_agent eq "'"
or http.request.headers["user-agent"][0] eq ""
or lower(http.user_agent) contains "puppeteer"
or lower(http.user_agent) contains "phantomjs"
or lower(http.user_agent) contains "selenium"
or lower(http.user_agent) contains "slimerjs"
or lower(http.user_agent) contains "nightmare"
or lower(http.user_agent) contains "casperjs"
or lower(http.user_agent) contains "pyppeteer"
)
or (ip.src.asnum in {135061 23724 4808} and http.user_agent contains "siteaudit")
or (http.host contains ":80")
or (http.host contains ":443")
or (
http.cookie contains "cf_use_ob="
and not http.cookie contains "0"
and not http.cookie contains "80"
and not http.cookie contains "443"
and not cf.client.bot
)
or (
cf.client.bot
and not (
(
cf.verified_bot_category in {"Search Engine Crawler"}
and (
lower(http.user_agent) contains "google"
or lower(http.user_agent) contains "bing"
or lower(http.user_agent) contains "slurp"
or lower(http.user_agent) contains "duckduckbot"
or lower(http.user_agent) contains "cloudflare"