ฉันโดน Apache นับหมื่นครั้ง (ค่อนข้างอาจเป็นอันตราย) ซึ่งทำให้เซิร์ฟเวอร์หยุดทำงาน การเข้าชมทั้งหมดมีลักษณะเช่นนี้ในบันทึก Apache:
[30/ม.ค./2022:21:57:41 +0000] "POST //xmlrpc.php HTTP/1.1" 200 630 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, เช่น Gecko) Chrome/88.0.4240.193 Safari/537.36"
(สังเกตเครื่องหมายทับสองครั้ง. ไม่รู้แปลว่าอะไร)
ฉันได้เพิ่มกฎด้านล่างใน .htaccess เพื่อพยายามลดภาระของเซิร์ฟเวอร์:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^//xmlrpc.php
RewriteRule .* - [F,L]
</IfModule>
เมื่อฉันวิ่ง curl -kIL -X POST -H 'โฮสต์: [ข้อมูลปกปิด]' https://127.0.0.1:443/xmlrpc.php
ฉันได้รับรหัสข้อผิดพลาด 403
อย่างไรก็ตาม เห็นได้ชัดว่ายังไม่เพียงพอ ตามบันทึก Apache ส่งคืน 200 สำหรับคำขอที่มีเครื่องหมายทับสองตัว ฉันจะบล็อกคำขอเหล่านี้ได้อย่างไร (ส่งคืน 403) ฉันจะใช้ curl / wget / etc เพื่อตรวจสอบว่าบล็อกทำงานอยู่หรือไม่?
ฉันต้องการกฎเพื่อป้องกันไม่ให้ "POST //xmlrpc.php HTTP/1.1" ส่งคืน 200 (HTTP OK) และส่งคืน 403 แทน