Night Watch
سایتهای خود را در برابر سیل خزشگرها فعال نگه دارید: یک واچداگ برای پایداری، یک سپر با پلن رایگان Cloudflare و یک دروازه ربات.
- Linux
- Python 3.10+
- Cloudflare Free plan
- ASGI or WSGI apps

کارکرد
واچداگ شب، هر سایتی را که اجرا میکنید دقیقاً همانطور که یک بازدیدکننده میبیند، هر پنج دقیقه باز میکند و لحظهای که یکی از آنها باز نشود و لحظهای که دوباره باز شود را به شما میگوید. وقتی سایتی به دلیل هجوم یک اسکرپر از کار میافتد، واچداگ یک قانون Cloudflare را فعال میکند که جلوی هجوم را در لبه شبکه میگیرد و اپلیکیشن شما تا زمانی که این وضعیت ادامه دارد، به سرویسدهی به کاربران ادامه میدهد.
- هر سایت، هر پنج دقیقه. هر زون در حساب Cloudflare شما، بهعلاوه هر صفحهای که لیست میکنید، بهصورت اختیاری با متنی که صفحه باید شامل آن باشد. یک پیام هنگام از کار افتادن سایت، یک پیام هنگام بازگشت آن همراه با مدت زمان قطعی، و یک یادآوری تا زمانی که سایت همچنان از کار افتاده است. از طریق ایمیل، وبهوک چت، یا هر دو.
- سپر محافظ در پلن رایگان. سه قانون سفارشی WAF: یک یوزر ایجنت کروم بدون هدرهایی که هر کروم واقعی ارسال میکند، با چالش مواجه میشود؛ درخواستهای صفحه از ابرهای اسکرپر با چالش مواجه میشوند؛ و یک قانون اضطراری، غریبهها را بدون کوکی و بدون لینک ارجاع در زمان هجوم، با چالش مواجه میکند.
- خودکار فعال میشود. وقتی سایتی به دلیل بار زیاد از کار میافتد، واچداگ قانون اضطراری را فعال میکند و در هشدار اعلام میکند؛ ساعتها پس از بازگشت سایت، آن را غیرفعال میکند. سپری که خودتان فعال کردهاید، فعال باقی میماند.
- دروازهای درون اپلیکیشن شما. یک فایل بدون وابستگی، برای FastAPI، Starlette، Django، Flask یا هر اپلیکیشن ASGI یا WSGI. این فایل مرورگرهای جعلی را پیش از اجرای کد شما رد میکند و غریبهها را در محدودهای نگه میدارد که هر ورکر میتواند سرویس دهد. افرادی که کوکی دارند یا از طریق لینک وارد میشوند، هرگز متوجه آن نمیشوند.
- ببینید چه چیزی به شما حمله میکند. فایروال Cloudflare در دقایق اخیر چه چیزی را با چالش مواجه کرده است؛ به تفکیک قانون، شبکه، کشور، یوزر ایجنت و مسیر، خوانده شده از رویدادهای خامی که پلن رایگان اجازه دسترسی به آنها را میدهد.
- بازگشت به حالت قبل، از پیش تعبیه شده. هر تغییر در قوانین، ابتدا قوانین زون را ذخیره میکند، قوانین خودتان پیش از قوانین ما سر جای خود باقی میمانند، و یک دستور، مجموعه ذخیرهشده را بازمیگرداند.
تستشده روی سایتهای خودمان
- یک هجوم واقعی، یک ساعت: روی یکی از سایتهای ما، قانون مرورگر جعلی بیش از 10,000 درخواست را با چالش مواجه کرد. 10,000 موردی که Cloudflare اجازه خواندن آنها را به ما داد، از 9,627 آدرس اینترنت خانگی بودند که هیچکدام بیش از 4 درخواست ارسال نکرده بودند؛ یک محدودیت نرخ به ازای هر آدرس هرگز فعال نمیشد.
- هر قانون، بهصورت زنده روی پلن رایگان آزمایش شد: یک غریبه هنگام فعال بودن قانون اضطراری با چالش مواجه شد و با کوکی یا لینک ارجاع، اجازه عبور یافت؛ یک یوزر ایجنت کروم بدون هدرهای مرورگر با چالش مواجه شد؛ گوگلبات عبور کرد. سپس قوانین قبلی زون دقیقاً بازگردانده شدند.
- دروازه زیر 1,747 درخواست در ثانیه روی uvicorn: هر اسکرپر بدون هدرهای مرورگر رد میشد، غریبهها به آنچه اپلیکیشن میتوانست ارائه دهد محدود میماندند، و هر بازدیدکننده بازگشتی، بازدیدکننده لینک و درخواست Googlebot با میانه 0.20 ثانیه پاسخ داده میشد، یعنی زمان خودِ صفحه.
محتویات
واچداگ
سایتها از حساب Cloudflare شما و یک لیست، بررسیهایی که شبیه بازدیدکننده به نظر میرسند، پیامها از طریق ایمیل یا وبهوک، و یک تست که «همه قطع هستند» را از «این ماشین آفلاین است» تشخیص میدهد.
سپر
نصب، وضعیت، روشن، خاموش، حذف نصب و بازگردانی برای یک منطقه یا همه، با پشتیبانگیری از هر تغییر قبل از اعمال.
دروازه
میانافزارهای ASGI و WSGI، یک صفحه «یک لحظه صبر کنید» 2 ثانیهای که به کاربران یک کوکی میدهد، و یک خط لاگ در دقیقه.
راهنمای عملیات
چه کاری انجام دهید وقتی سایت کند یا قطع است، چگونه یک سیل ترافیک را بخوانید، و چه چیزی را در داشبورد Cloudflare روشن نکنید.
پیشنیازها
- Linux با systemd و Python 3.10 یا جدیدتر؛ چیزی برای نصب از pip لازم نیست.
- برای سپر و نمای رویدادها، سایتها روی Cloudflare (هر پلن، شامل پلن رایگان) و یک توکن API.
- یک ماشین متفاوت از ماشینی که سایتهای شما را سرو میکند، تا بتواند وقتی آن یکی قطع است به شما اطلاع دهد.
خوب است بدانید
- قانون اضطراری همچنین به کسی که آدرس شما را در یک مرورگر تازه تایپ میکند چالش وارد میکند، به همین دلیل فقط در زمان سیل ترافیک روشن است.
- باتهای تایید شده و رباتهایی که خود را معرفی میکنند هرگز با چالش مواجه نمیشوند، و موتورهای جستجو هرگز توسط دروازه رد نمیشوند.
- سپر از سه مورد از پنج قانون سفارشی که پلن رایگان برای هر منطقه اجازه میدهد استفاده میکند.
پرسشها
آیا به پلن پولی Cloudflare نیاز دارم؟
خیر. همه کارهایی که Night Watch انجام میدهد روی پلن رایگان کار میکند: سه قانون، نمای رویدادها و سوئیچینگ خودکار. یک پلن پولی فقط اسلاتهای قانون بیشتری در کنار قوانین ما به شما میدهد.
آیا خزندههای گوگل یا جستجوی AI را مسدود میکند؟
خیر. باتهای تایید شده Cloudflare و هر رباتی که خود را در user agent معرفی میکند از سپر عبور میکنند، و دروازه هرگز موتور جستجو یا پیشنمایش لینک را رد نمیکند. اگر میخواهید خزندههای AI را مسدود کنید، این یک انتخاب جداگانه در داشبورد Cloudflare است.
سایت من روی Cloudflare نیست. آیا هنوز مفید است؟
واچداگ و دروازه در هر جایی کار میکنند: واچداگ هر URL را باز میکند، و دروازه از هر اپلیکیشن وب Python محافظت میکند. سپر و نمای رویدادها به Cloudflare نیاز دارند.
این چه فرقی با یک پایشگر آپتایم دارد؟
یک پایشگر آپتایم به شما میگوید که یک سایت از دسترس خارج شده است. Night Watch نیز همین را به شما میگوید، سپس برای شایعترین علتی که میبینیم اقدام میکند: سپر را در لبهی Cloudflare فعال میکند و دروازه، تا زمانی که سیل ادامه دارد، به برنامه شما اجازه میدهد که به افراد مورد نظر شما سرویسدهی کند.
بهروزرسانی شد: