私はオープンソースの BitcoinArt プロジェクトの創設者、Aksana (5Ksana) です。 夫の Aliaksandr (ALEX) Zasinets は、セキュリティ、テスト、オープンソースツールを担当しています。 Aliaksandr は QA オートメーションエンジニア、ペネトレーションテスター、そしてオープンソースのセキュリティ研究者です。 彼はウェブサイトのセキュリティ、Cloudflare 保護、WAF ルール、DDoS 保護、セキュリティヘッダー、ボット保護、悪質なスキャナーからの保護に取り組んでいます。 Apple は、ウェブサーバーのセキュリティ問題を発見・報告したとして Aliaksandr に感謝の意を表しました。
彼は Apple Security Acknowledgements に掲載されています: https://support.apple.com/en-ug/102774
このリポジトリ cloudflare-security-art は、Cloudflare を使用する小規模なウェブサイト、アーティスト、クリエイター、セルフホストプロジェクト向けの無料セキュリティガイドです。 このプロジェクトがあなたのウェブサイトの保護に役立ったなら、GitHub Sponsors を通じて私たちのオープンソース活動を支援してください:
https://github.com/sponsors/buybitart
あなたの支援は、Cloudflare セキュリティルールのテスト、このガイドの更新、シンプルなサンプルの作成、そしてこのプロジェクトを無料で維持するために役立ちます。 このリポジトリが役立ったなら、ぜひスター ⭐ を付けてください。プロジェクトの成長につながります。ありがとうございます! ❤️
このガイドは、Cloudflare を使用してウェブサイトを保護するのに役立ちます。ファイアウォールルール、DDoS 保護、セキュリティヘッダー、ボット設定が含まれています。
含まれる内容:
私の Cloudflare ルールは:
AI ボットはあなたのコンテンツをコピーしようとします! AI がどのようにあなたのアートを盗んでいるか と 「大量窃盗」:数千人のアーティストが AI アートオークションの中止を求める をご覧ください。
「芸術の主なポイントの一つは、文化との対話です。 意図的でなくても、すべての芸術作品は、食べ物、宗教、音楽、倫理、視覚芸術などによって形作られた、その創作者の独自の背景を反映しています。
孤立して育ち、1日16時間絵画だけを見せられ、毎週の絵がそれらのイメージを十分に忠実に再現できなければ罰せられる子供を想像してみてください。その子はなぜ描くのかわかりません——ただ模倣するだけです。創造しているのではありません。芸術と対話しているのではありません。
コンピューターはさらに単純です。感じることも、反映することも、1920年代のジャズの音や、初めてウォーホルを見たときのことを覚えていることもありません。
しかし、人間のアーティストは違います。 彼らは経験、感情、意図を携えています。過去から借り、現在と混ぜ合わせ、自分自身の声で語ります。それが芸術です。それが違いです。
芸術が利益のための単なる模倣であるとき、それは空虚です。しかし、それが語りかけるとき——それは意味を持ちます。」
AI は検索エンジンのふりをしますが、訪問者をもたらすことはありません。 中には偽のユーザーエージェントを使うものもあり、基本的な Cloudflare 設定では止められないかもしれません。 このルールはデフォルトですべてのボットをブロックし、その後、ウェブサイトのインデックス登録に役立つ有用なボットのみを許可します。
| ステップ | 説明 |
|---|---|
| ステップ 1 – Web Application Firewall (WAF) ルール | ボット、クローラー、エクスプロイト、悪意のあるリクエストをブロックします(パート 1〜5)。 |
| ステップ 2 – DDoS L7 保護とレート制限 | レイヤー 7 オーバーライドとレート制限を追加してフラッドを停止します。 |
| ステップ 3 – ボット管理 | Cloudflare のボット設定を構成して AI や不要なボットをブロックします。 |
| ステップ 4 – セキュリティヘッダー | サイトを強化するための推奨 HTTP ヘッダーを設定します。 |
[!IMPORTANT]
SecurityタブのBot Fight Mode機能を無効化することも推奨されます。 このガイドはすでにすべての不要なボットと AI クローラーをブロックしつつ、サイトのインデックス登録に使用される重要で信頼できるボットのみを許可しています:
- bing
- slurp
- duckduckbot
- cloudflare このため、Bot Fight Mode を有効にする必要はありません。有効にするとこれらの許可されたボットに干渉し、適切なインデックス登録を妨げる可能性があります。
カスタム WAF ルールのために、これらの式を Cloudflare ダッシュボードにコピーしてください。
ダッシュボードでカスタムルールを作成する をお読みください。
このルールは、各リクエストをチェックし、ヘッドレスブラウザやスキャナーなどの空または奇妙な User‑Agent 名、および「siteaudit」を使用する特定の IP グループからのトラフィック、および「:80」または「:443」を含む Host ヘッダー、および不正な Cloudflare クッキー、および検証済みの検索クローラーまたは ACME チャレンジではない Cloudflare client.bot、および「/robots.txt」を要求しない、または実際の検索ボットや ACME チェックから来ていない HTTP/1.0 または HTTP/1.1 リクエストをブロックすることで、悪質な自動ウェブトラフィックを停止します。
NOTE🔒 このルールはすべての脅威の約 90% を停止します。悪質なボットトラフィックがアプリケーションに到達する前に遮断します。
アクション: ブロック
(
(
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"
)
)
or cf.verified_bot_category in {"Page Preview"}
or lower(http.user_agent) contains "google-inspectiontool"
or lower(http.user_agent) contains "google-siteverification"
or lower(http.user_agent) contains "googlebot"
or lower(http.user_agent) contains "chrome-lighthouse"
or http.request.uri.path contains "acme-challenge"
or lower(http.user_agent) contains "adsbot-google"
or lower(http.user_agent) contains "google-adwords"
)
)
)
or
(
http.request.version in {"HTTP/1.0" "HTTP/1.1"}
and not (
cf.client.bot
or cf.verified_bot_category in {"Page Preview"}
or 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"
or lower(http.user_agent) contains "google-inspectiontool"
or lower(http.user_agent) contains "google-siteverification"
or lower(http.user_agent) contains "googlebot"
or lower(http.user_agent) contains "chrome-lighthouse"
or http.request.uri.path contains "acme-challenge"
or lower(http.user_agent) contains "adsbot-google"
or lower(http.user_agent) contains "google-adwords"
)
)
このルールは多くの自動化されたボットやクローラーをブロックします。「amazonbot」「gptbot」「claudebot」「mistralai」などのAIクローラーを停止します。また、名前に「bot」「crawl」「spider」を含むユーザーエージェントを特定のIPグループからブロックします。GoogleやBingなどの実際の検索エンジンやACMEチャレンジリクエストは引き続き許可されます。
アクション: ブロック