Night Watch
ทำให้เว็บไซต์ของคุณออนไลน์ต่อเนื่องท่ามกลางการโจมตีจากสคราเปอร์: ระบบเฝ้าดูสถานะการทำงาน, โล่ป้องกันจากแผน Cloudflare Free และประตูกรองบอท
- Linux
- Python 3.10+
- Cloudflare Free plan
- ASGI or WSGI apps

ฟีเจอร์หลัก
Night Watch เปิดหน้าเว็บทุกหน้าที่คุณรันในมุมมองของผู้เข้าชม ทุก ๆ 5 นาที และแจ้งคุณทันทีที่หน้าใดหน้าหนึ่งเปิดไม่ติดและทันทีที่กลับมาเปิดได้ เมื่อหน้าเว็บล่มเพราะถูก scraper ถล่ม ระบบจะเปิดใช้กฎ Cloudflare ที่หยุดการถล่มที่ Edge ทันที ทำให้แอปของคุณยังคงให้บริการผู้คนต่อไปได้ระหว่างนั้น
- ทุกหน้าเว็บ ทุก ๆ 5 นาที ทุกโซนในบัญชี Cloudflare ของคุณ รวมถึงหน้าใดก็ตามที่คุณระบุไว้ โดยจะเลือกตรวจสอบข้อความที่หน้าต้องมีก็ได้ แจ้งเตือนหนึ่งครั้งเมื่อหน้าเว็บล่ม หนึ่งครั้งเมื่อกลับมาพร้อมระยะเวลาที่ล่ม และเตือนซ้ำระหว่างที่ยังล่มอยู่ ผ่านทางอีเมล Webhook แชท หรือทั้งสองช่องทาง
- เกราะป้องกันบนแผน Free กฎ WAF แบบกำหนดเอง 3 ข้อ: User agent ของ Chrome ที่ขาด Header ที่ Chrome จริงส่งทุกครั้งจะถูกขอตรวจสอบคำขอหน้าเว็บจากเครือข่าย scraper จะถูกขอตรวจสอบ และกฎฉุกเฉินจะขอตรวจสอบผู้มาเยือนที่ไม่มี Cookie และไม่มีลิงก์อ้างอิงระหว่างการถูกถล่ม
- เปิดใช้เองโดยอัตโนมัติ เมื่อหน้าเว็บล่มจากโหลดเกิน ระบบจะเปิดกฎฉุกเฉินและแจ้งในข้อความเตือน และจะปิดกฎนั้นหลังจากหน้าเว็บกลับมาแล้วหลายชั่วโมง ส่วนเกราะที่คุณเปิดใช้เองจะยังคงเปิดอยู่
- ประตูตรวจในแอปของคุณ ไฟล์เดียวที่ไม่ต้องพึ่งพาไลบรารีภายนอก สำหรับ FastAPI, Starlette, Django, Flask หรือแอป ASGI หรือ WSGI ใด ๆ ระบบจะปฏิเสธเบราว์เซอร์ปลอมก่อนที่โค้ดของคุณจะทำงาน และจำกัดผู้มาเยือนให้อยู่ในขอบเขตที่ Worker แต่ละตัวให้บริการได้ ผู้ที่มี Cookie หรือเข้ามาผ่านลิงก์จะไม่รู้สึกถึงการมีอยู่ของมัน
- ดูว่าใครกำลังถล่มคุณ ดูว่า Firewall ของ Cloudflare ขอตรวจสอบอะไรในช่วงไม่กี่นาทีที่ผ่านมา แยกตามกฎ เครือข่าย ประเทศ User agent และ Path โดยอ่านจากข้อมูลเหตุการณ์ดิบที่แผน Free อนุญาต
- มีระบบย้อนกลับในตัว ทุกครั้งที่เปลี่ยนกฎ ระบบจะบันทึกกฎของโซนไว้ก่อน กฎของคุณเองจะยังคงอยู่ก่อนหน้ากฎของเรา และคำสั่งเดียวจะนำกฎที่บันทึกไว้กลับมาใช้
ทดสอบบนหน้าเว็บของเราเอง
- การถล่มจริง หนึ่งชั่วโมง: บนหน้าเว็บของเรา กฎเบราว์เซอร์ปลอมขอตรวจสอบคำขอมากกว่า 10,000 ครั้ง ส่วน 10,000 รายการที่ Cloudflare อนุญาตให้อ่านได้ มาจากที่อยู่ Broadband ตามบ้าน 9,627 แห่ง โดยไม่มีแห่งใดส่งเกิน 4 ครั้ง: การจำกัดอัตราต่อที่อยู่จึงไม่เคยทำงาน
- ทุกกฎ ทดสอบสดบนแผน Free: ผู้มาเยือนถูกขอตรวจสอบขณะกฎฉุกเฉินเปิดอยู่ และได้รับอนุญาตเมื่อมี Cookie หรือลิงก์อ้างอิง; User agent ของ Chrome ที่ขาด Header เบราว์เซอร์ถูกขอตรวจสอบ; Googlebot ผ่านได้ จากนั้นกฎเดิมของโซนถูกกู้คืนมาอย่างถูกต้อง
- ประตูคัดกรองรองรับไม่ถึง 1,747 คำขอต่อวินาที บน uvicorn: ทุกสคริปเตอร์เก็บข้อมูลที่ไม่ส่ง browser headers ถูกปฏิเสธ คนแปลกหน้าถูกจำกัดให้อยู่เฉพาะสิ่งที่แอปพลิเคชันให้บริการได้ และทุกคำขอจากผู้กลับมาเยือน ผู้มาเยือนจากลิงก์ และ Googlebot ถูกให้บริการภายในเวลาเฉลี่ย 0.20 วินาที ซึ่งเป็นเวลาของหน้าเว็บนั้นเอง
มีอะไรอยู่ในชุดเครื่องมือ
ตัวตรวจสอบระบบ
เว็บไซต์จากบัญชี Cloudflare ของคุณและรายการตรวจสอบที่ดูเหมือนผู้มาเยือน ส่งข้อความทางอีเมลหรือ webhook และการทดสอบที่แยกความแตกต่างระหว่าง "ล่มทั้งหมด" กับ "เครื่องนี้ออฟไลน์"
โล่ป้องกัน
ติดตั้ง สถานะ เปิด ปิด ถอนการติดตั้ง และกู้คืน สำหรับหนึ่งโซนหรือทั้งหมด โดยสำรองข้อมูลก่อนทุกการเปลี่ยนแปลง
ประตูคัดกรอง
ASGI และ WSGI middleware หน้า "โปรดรอสักครู่" ที่ใช้เวลา 2 วินาทีซึ่งมอบคุกกี้ให้ผู้ใช้ และบันทึกเหตุการณ์หนึ่งบรรทัดต่อนาที
คู่มือปฏิบัติการ
สิ่งที่ต้องทำเมื่อเว็บไซต์ช้าหรือล่ม วิธีอ่านข้อมูลน้ำท่วม (flood) และสิ่งที่ไม่ควรเปิดใช้บนแดชบอร์ดของ Cloudflare
ข้อกำหนด
- Linux พร้อม systemd และ Python 3.10 ขึ้นไป ไม่ต้องติดตั้งอะไรจาก pip
- สำหรับโล่ป้องกันและมุมมองเหตุการณ์ เว็บไซต์ต้องอยู่บน Cloudflare (ทุกแพ็กเกจ รวมถึงแพ็กเกจ Free) และต้องมี API token
- เครื่องอื่นที่ไม่ใช่เครื่องที่ให้บริการเว็บไซต์ของคุณ เพื่อให้มันแจ้งคุณได้เมื่อเครื่องนั้นล่ม
ข้อมูลที่เป็นประโยชน์
- กฎฉุกเฉินยังท้าทายคนที่พิมพ์ที่อยู่ของคุณในเบราว์เซอร์ใหม่ ซึ่งเหตุผลที่มันถูกปิดไว้ยกเว้นในช่วงน้ำท่วม (flood)
- บอทที่ผ่านการตรวจสอบและโรบอทที่ระบุชื่อตัวเองจะไม่ถูกท้าทาย และประตูคัดกรองไม่เคยปฏิเสธเครื่องมือค้นหา
- โล่ป้องกันใช้กฎกำหนดเอง 3 จาก 5 กฎที่แพ็กเกจ Free อนุญาตต่อโซน
คำถาม
ฉันต้องใช้แพ็กเกจ Cloudflare แบบชำระเงินหรือไม่?
ไม่ Night Watch ทำงานได้ทั้งหมดบนแพ็กเกจ Free: กฎ 3 ข้อ มุมมองเหตุการณ์ และการสลับอัตโนมัติ แพ็กเกจแบบชำระเงินเพียงให้ช่องว่างกฎเพิ่มเติมจากกฎของเรา
มันจะบล็อก Google หรือ AI search crawlers หรือไม่?
ไม่ บอทที่ผ่านการตรวจสอบของ Cloudflare และโรบอททุกตัวที่ระบุชื่อใน user agent จะผ่านโล่ป้องกัน และประตูคัดกรองไม่เคยปฏิเสธเครื่องมือค้นหาหรือลิงก์พรีวิว หากคุณต้องการบล็อก AI crawlers นั่นเป็นตัวเลือกแยกต่างหากในแดชบอร์ดของ Cloudflare
เว็บไซต์ของฉันไม่ได้ใช้ Cloudflare มันยังมีประโยชน์ไหม?
ตัวตรวจสอบระบบและประตูคัดกรองทำงานได้ทุกที่: ตัวตรวจสอบระบบเปิด URL ใดก็ได้ และประตูคัดกรองปกป้องแอปพลิเคชันเว็บ Python ใดก็ได้ โล่ป้องกันและมุมมองเหตุการณ์ต้องใช้ Cloudflare
สิ่งนี้แตกต่างจากตัวตรวจสอบสถานะการทำงานอย่างไร?
ตัวตรวจสอบสถานะการทำงานจะบอกคุณว่าเว็บไซต์ล่ม Night Watch ก็บอกคุณเช่นกัน จากนั้นจึงดำเนินการกับสาเหตุที่พบบ่อยที่สุดที่เราพบ: มันจะเปิดใช้งานโล่ที่ Cloudflare's edge และประตูจะช่วยให้แอปของคุณให้บริการเฉพาะกลุ่มคนที่ต้องการได้ต่อไปจนกว่าการโจมตีจะสิ้นสุดลง
อัปเดตแล้ว: