การเยี่ยมชมส่วนใหญ่ของฉันมาจากแมงมุม baidu ฉันไม่คิดว่ามันจะช่วยให้เครื่องมือค้นหาเลยดังนั้นฉันจึงคิดว่าจะบล็อกพวกเขาอย่างไร สิ่งนี้สามารถทำได้ผ่าน iptables? ฉันใช้ nginx เป็นเว็บเซิร์ฟเวอร์ของฉัน
robots.txt
กฎ
การเยี่ยมชมส่วนใหญ่ของฉันมาจากแมงมุม baidu ฉันไม่คิดว่ามันจะช่วยให้เครื่องมือค้นหาเลยดังนั้นฉันจึงคิดว่าจะบล็อกพวกเขาอย่างไร สิ่งนี้สามารถทำได้ผ่าน iptables? ฉันใช้ nginx เป็นเว็บเซิร์ฟเวอร์ของฉัน
robots.txt
กฎ
คำตอบ:
ใน robots.txt ของคุณเพิ่ม
#Baiduspider
User-agent: Baiduspider
Disallow: /
#Yandex
User-agent: Yandex
Disallow: /
User-agent: *
และเข้าถึง baiduspider อย่างต่อเนื่อง
ฉันเพิ่งบล็อกตัวค้นหาภาษาจีนสำเร็จไม่ให้Baiduspider
เข้าถึงเนื้อหาใด ๆ บนไซต์ของฉัน ฉันตัดสินใจที่จะทำเพราะเหตุผลดังต่อไปนี้
เหตุผลในการตัดสินใจบล็อก
ดังนั้นฉันหวังว่าซูและคนอื่น ๆ ที่มีความกังวลเกี่ยวกับซีโนโฟเบียจะเข้าใจว่าการตัดสินใจครั้งนี้เป็นการตอบสนองต่อคำขอที่ไม่น่าสนใจจำนวนมาก
วิธี
Baiduspider เข้าถึงเซิร์ฟเวอร์ของฉันโดยใช้ที่อยู่ IP ที่แตกต่างกัน แต่ที่อยู่เหล่านี้อยู่ในช่วงที่กำหนด ดังนั้นไฟล์. htaccess ของฉันจึงมีบรรทัดต่อไปนี้:
order allow,deny
allow from all
# Block access to Baiduspider
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24
บรรทัดล่างอธิบายโดยทั่วไปคือช่วง IP 4 ช่วงที่ฉันรู้ Baiduspider และ Baiduspider เข้าถึงเซิร์ฟเวอร์ของฉันเท่านั้น แต่ละช่วง 4 ช่วงเป็น 256 ที่อยู่ติดกัน (รวม 1024 รายการ) โปรดทราบว่าไวยากรณ์สำหรับช่วง IP ในdeny from...
บรรทัดอาจสร้างความสับสนได้มากหากคุณยังไม่ได้อ่านในช่วง CIDR เพียงแค่ทำความเข้าใจว่า0/24
หมายถึงช่วง 256 ขนาดเริ่มต้นจาก 0 ดังนั้น180.76.5.0/24
จริงหมายถึงทุกคนที่อยู่ IP ระหว่างและ180.76.5.0
180.76.5.255
ใช่ไม่ชัดเจนโดยเฉพาะ! แต่ถ้าคุณต้องการเรียนรู้ว่าทำไมหรือเพียงแค่รู้สึกสับสนไปที่http://www.mediawiki.org/wiki/Help:Range_blocks
สรุป
อินเทอร์เน็ตควรเป็นอิสระเปิดกว้างและยุติธรรม แต่นั่นหมายถึงองค์กรเช่น Baidu เรียนรู้ที่จะเชื่อฟัง Robots.txt และโลภน้อยลงเมื่อมีการรวบรวมข้อมูลเป็นประจำ โซลูชันของฉันเกี่ยวข้องกับการตั้งค่าที่มีประสิทธิภาพมากดังนั้นก่อนที่คุณจะยุ่งกับไฟล์. htaccess โปรดสำรองข้อมูลดั้งเดิมของคุณพร้อมที่จะย้อนกลับหากคุณลบเซิร์ฟเวอร์ของคุณด้วยเปลวไฟแห่งความรุ่งโรจน์ ดำเนินการด้วยความเสี่ยงของคุณเอง
คุณสามารถใช้คำสั่งต่อไปนี้robots.txt
เพื่อไม่อนุญาตให้รวบรวมข้อมูลเว็บไซต์ของคุณ
# robots.txt
User-agent: Baiduspider
Disallow: /
อย่างไรก็ตามโปรแกรมรวบรวมข้อมูลอาจตัดสินใจเพิกเฉยต่อเนื้อหาของ robots.txt ของคุณ ยิ่งกว่านั้นไฟล์สามารถถูกแคชโดยเอ็นจินการค้นหาและใช้เวลาก่อนที่การเปลี่ยนแปลงจะมีผล
วิธีที่มีประสิทธิภาพมากที่สุดคือการใช้ความสามารถของเซิร์ฟเวอร์ของคุณ เพิ่มกฎต่อไปนี้ในnginx.conf
ไฟล์ของคุณเพื่อบล็อก Baidu ที่ระดับเซิร์ฟเวอร์
if ($http_user_agent ~* ^Baiduspider) {
return 403;
}
อย่าลืมรีสตาร์ทหรือโหลด Nginx ใหม่เพื่อใช้การเปลี่ยนแปลง
เพิ่งตัดสินใจบล็อก Baidu เนื่องจากปริมาณการรับส่งข้อมูลที่เราให้นั้นมีน้อยมากสำหรับการสแกนเชิงรุกของพวกเขา นอกจากนี้ตอนนี้พวกเขาเรียกใช้ตัวแทนที่ปลอมตัวเป็นเบราว์เซอร์และเปิดตัวรหัส JavaScript (เช่น Google Analytics) และทำให้สถิติของเรายุ่งเหยิง
เวอร์ชันที่ดีกำลังอัปเดต robots.txt ของคุณด้วยสิ่งต่อไปนี้
User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /
แต่เมื่อพิจารณาสิ่งที่ผู้อื่นเขียนที่นี่และพวกเขาใช้ตัวแทนผู้ใช้ที่ซ่อนสถานะของพวกเขาฉันจะบล็อกที่อยู่ IP ของพวกเขาทั้งหมด ต่อไปนี้เป็นวิธีการทำใน nginx
# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;
โซลูชัน Wordpress (ไม่ใช่วิธีที่ดีที่สุด แต่ช่วยได้)
ปัญหาเดียวกันกับแมงมุม Biadu ที่ก้าวร้าวที่กล่องของฉันติดอันดับ 35 ในคอนโซลของฉันโดยใช้อันดับต้น ๆ เห็นได้ชัดว่าแม้แต่คอมพิวเตอร์ที่รวดเร็วไม่สามารถจัดการกับคำขอภายนอกที่ทำงานอย่างมีประสิทธิภาพที่ 35 ...
ฉันติดตามจำนวน IP (จากอาคารมหาวิทยาลัย ????) เป็นหลายร้อยโดยมีผู้ใช้สองคนเป็นหลัก)
ผลที่ตามมาโดยตรง? เนื่องจากฉันมีเซิร์ฟเวอร์คลาวด์ฉันจึงต้องอัพเกรดหน่วยความจำเดียวกันให้สูงขึ้นเพื่อให้สามารถตอบสนองต่อการตัดสินใจได้
คำตอบก่อนหน้า:
#Baiduspider
User-agent: Baiduspider
Disallow: /
ดูเหมือนว่า Baidu ไม่สามารถเคารพข้อบ่งชี้ของ robot.txt ได้ทั้งหมด
ฉันติดตั้งปลั๊กอิน WP-Ban สำหรับ Wordpress (ฟรี) และห้ามต่อไปนี้:
ตัวแทนผู้ใช้:
Baiduspider+(+http://www.baidu.com/search/spider.htm)
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
นอกจากนี้การใช้ Wp Super Cache ฉันส่งหน้าข้อผิดพลาดสัมพัทธ์ไปยังหน้าคงที่ดังนั้นการติดตั้ง wordpress ทั้งหมดไม่ได้ / หรืออย่างน้อยก็เฉพาะสำหรับผู้ใช้ที่ถูกแบนต้องตรวจสอบ Mysql datatable
(นี่คือมาตรฐาน Wordpress blablabla ดังนั้นทุกคนสามารถติดตั้งปลั๊กอิน Wordpress สามารถทำได้โดยไม่ต้องมีการเข้ารหัสหรือการเข้าถึง ftp สำหรับขั้นตอนนี้)
ฉันเห็นด้วยกับทุกคน: อินเทอร์เน็ตฟรีห้ามใครก็ตามหรืออะไรก็ตามที่เป็นสิ่งสุดท้ายที่ทุกคนควรทำ แต่วันนี้ Baidoo มีค่าใช้จ่ายฉัน USD 40 ต่อเดือนต่อเดือนเพียงแค่แมงมุมเว็บที่เขียนด้วยภาษา Portughese และฉันสงสัยว่ามีอะไรบ้าง คนจีนและผู้เยี่ยมชมจำนวนมากสามารถอ่านและเข้าใจภาษานี้ได้
คุณสามารถบล็อกโดยที่อยู่ IP โดยใช้ngx_http_access_module
ของ nginx หากต้องการบล็อก IP เดียวคุณสามารถเพิ่มบรรทัดลงในไฟล์ conf เช่น
deny 12.34.567.1;
ในการบล็อกช่วงให้ใช้สัญกรณ์CIDRเช่น12.34.567.1/24
บล็อกซับเน็ต 24 บิต (จากที่อยู่ IP 256 แห่ง) ซึ่งรวมที่อยู่ IP 12.34.567.1 ดูรายละเอียดเพิ่มเติมได้ที่หน้านี้
ใช้. htaccess ด้วย
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .* - [L,F]
"RewriteEngine On" ช่วยให้คุณสามารถแยกวิเคราะห์บรรทัดต่อไปนี้ได้อย่างถูกต้อง HTTP_USER_AGENT เป็นบรรทัดที่สไปเดอร์ระบุตนเอง เงื่อนไขเป็นจริงถ้าบรรทัดมี "MJ12bot" หรือ "Baidu" NC หมายถึง "ไม่ต้องตรงตามตัวพิมพ์ใหญ่ - เล็ก" และคุณสามารถเชื่อมโยงเงื่อนไขกับ OR บรรทัดสุดท้ายต้องไม่มี "หรือ" มิฉะนั้นกฎจะไม่ทำงาน
ไป่ตู้เป็นที่น่ารังเกียจโดยเฉพาะอย่างยิ่งเพราะพยายามอ่านรายการ Wordpress ("fckeditor", "wp-content") ซึ่งไม่มีเหตุผลอย่างแน่นอน MJ12bot เป็นหนึ่งในสัตว์เลื้อยคลานที่ไม่ดีเช่นกัน
กฎการเขียนซ้ำหมายถึงปิดกั้นเดอร์ด้วย 403 สิ่งต้องห้าม ([F]) เพื่อเข้าถึงไฟล์ทั้งหมด (. * เป็นนิพจน์ปกติสำหรับไฟล์ใด ๆ ) และหยุดการประเมินเพิ่มเติม ([L]) ของ htaccess
F
ธงหมายถึงL
เพื่อให้คุณไม่จำเป็นต้องชัดเจนรวมถึงL
ธงที่นี่ นอกจากนี้รูปแบบเช่นเป็นเช่นเดียวกับเพียง^.*Baidu
Baidu