바이두 거미를 차단하는 방법


15

내 방문의 대부분은 바이두 거미에서 왔습니다. 검색 엔진에 전혀 도움이되지 않는다고 생각하므로 차단하는 방법을 생각하고 있습니다. iptables를 통해이 작업을 수행 할 수 있습니까? 웹 서버로 nginx를 사용하고 있습니다.


2
왜 안돼? 나는 중국의 교통을 원하지 않습니다.
Zhianc

6
나는 당신이해서는 안된다고 말하는 것이 아니라 왜 귀찮게하는지 묻는 것입니다. 그들은 어떤 식 으로든 당신을 다치게합니까? 그냥 무시하는 것이 쉽지 않습니까? "중국의 교통을 원하지 않는다"는 실제 대답이 아니라 경계의 외국인 혐오증입니다. 하나의 검색 엔진을 차단하는 것은 중국어를 차단하는 것과 거의 같지 않으므로 실제로 이해가되지 않습니다. 잘못된 문제를 기반으로 솔루션을 찾고 있었을 것 같습니다. 그러나 분명히 당신은 거미를 임의로 차단하고 싶을 것입니다.
Su '

7
@Su '나는 바이두 스파이더가 내 사이트를 매우 공격적으로 크롤링하여 합법적 인 트래픽을 막는 것을 발견했습니다. 또한, 나는 바이두 거미가 robots.txt규칙을 준수하지 않는다는 것을 발견했습니다 .
starbeamrainbowlabs

2
바이두 (Baidu) 거미로 추정되는 초당 1 ~ 2 회 정도의 타격을받습니다. 적중 할 때마다 내 서버에 새 세션 파일이 생성됩니다. 해당 세션 파일을 제거하는 스크립트가 있지만 해당 스파이더도 MySQL 서버에 과부하가 걸립니다. 확실히 차단하고 싶습니다.
Buttle Butkus

2
baiduspider 또는 baiduspider로 위장한 것이 사이트를 비 윤리적으로 크롤링하고 robots.txt 지시문을 무시 함을 확인할 수 있습니다.
JMC

답변:


8

robots.txt에 추가

#Baiduspider
User-agent: Baiduspider
Disallow: /

#Yandex
User-agent: Yandex
Disallow: /

5
robots.txt를 존중하지 않으면 어떻게 되나요?
Zhianc

5
중국 IP 주소의 "Baiduspider / 2.0"액세스가 내 사이트의 robots.txt를 준수하지 않는다는 것을 알고 있습니다. 또한 종종 "Baiduspider"사용자 에이전트 ID를 사용하지 않는 동일한 IP 주소 블록에서 조정 된 액세스 (몇 분 간격)를 사용합니다.
mgkrebbs

Yandex는 robots.txt를 준수합니다. 우리 사업의 좋은 부분이 러시아에서 왔고 블록을 제거해야한다는 것을 깨달을 때까지 잠겨있었습니다. 바이두, 넷 블록을 확인해야합니다. 모든 Baidu에서 UA가 실제로 Baidu라고 발표 한 것은 아니므로 합법적 인 Baidu 트래픽에 대해 robots.txt 블록을 수행 한 다음 .htaccess에서 UA 문자열 블록을 수행하여 남아있는 항목을 찾은 다음 블록 식별 및 거부를 통해 블록을 수행하여 인명을 낭비하십시오. UA 문자열 블록을 둘러싼 나머지. 트래픽을 처리하기 위해 서버를 강화하는 것만큼이나 효과적입니다.
Fiasco Labs 5

2
나는 User-agent: *바이두 스파이더 액세스를 계속하고 있습니다.
reinierpost

3
Yandex는 러시아 시장에 대한 다른 검색 엔진이므로 질문이 전혀 묻지 않고 여기에 아무것도 쓰지 않으면 여기에 포함 시키면 다소 무책임합니다.
Collector

7

중국 검색 봇 Baiduspider이 내 사이트의 콘텐츠에 액세스하지 못하도록 막았습니다 . 다음과 같은 이유로 결정을 내 렸습니다.

차단을 결정하는 이유

  1. 내 서버에 대한 대략 20 번째 요청은 바이두 봇으로부터의 요청입니다. 이것은 거칠지 않은 행동입니다. Baidubot은 내 사이트 대역폭 사용량의 5 %를 차지합니다.
  2. 사이트의 리소스를 작게 유지하고 브라우저 캐싱과 같은 기술을 활용하여 속도와 대역폭에서 작은 승리를 거두려고 많은 노력을 기울입니다. Baidubot을 차단하여 5 %를 확보하는 것이 좋습니다.
  3. 사이트의 콘텐츠는 지리적으로 영국에만 국한되어 있고 중국어 버전이 없으며 영국 시장을 대상으로하는 광고에서 수익이 발생하기 때문에 일부 중국 트래픽을 잃을 가능성은 사업에 허용되는 위험입니다.

그래서 Su '와 Xenophobia에 관심이있는 다른 사람들이이 결정이 수많은 요청에 대한 멋진 반응임을 이해할 수 있기를 바랍니다.

방법

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 

결론은 기본적으로 Baiduspider와 Baiduspider 만 내 서버에 액세스하는 4 개의 IP 범위를 설명합니다. 4 개의 범위는 각각 256 개의 연속 주소 (총 1024)입니다. deny from...CIDR 범위를 읽지 않으면 회선 의 IP 범위에 대한 구문 이 매우 혼란 스러울 수 있습니다. 그냥 이해 0/24256 크기의 범위는 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 파일을 엉망으로 만들기 전에 원본을 백업하고 롤백 할 준비가되어 있는지 확인하십시오. 자신의 위험에 따라 진행하십시오.


이 시간에 유지 보수 시간이 필요하므로 자신의 IP 주소 블록은 변경 될 수 있습니다
asgs

5

다음 지시문을 사용 robots.txt하여 사이트 크롤링을 허용하지 않을 수 있습니다.

# robots.txt
User-agent: Baiduspider
Disallow: /

그러나 크롤러 robots.txt의 내용을 무시하기로 결정할 수 있습니다 . 또한 파일은 검색 엔진에 의해 캐시 될 수 있으며 변경 사항이 반영되기까지 시간이 걸립니다.

가장 효과적인 방법은 서버 기능을 사용하는 것입니다. nginx.conf서버 수준에서 Baidu를 차단 하려면 파일에 다음 규칙을 추가하십시오 .

if ($http_user_agent ~* ^Baiduspider) {
  return 403;
}

변경 사항을 적용하려면 Nginx를 다시 시작하거나 다시로드해야합니다.


3

바이두가 우리에게 제공하는 트래픽의 양이 공격적인 스캔을하기에는 너무 무시할 정도로 바이두를 막기로 결정했습니다. 또한 이제는 브라우저를 사칭하고 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;

2

워드 프레스 솔루션 (최고는 아니지만 도움이 됨)

Biadu 스파이더와 동일한 문제로 콘솔에서 top을 사용하여 내 상자의 순위가 35 이상이라는 공격적입니다. 분명히 빠른 컴퓨터조차도 35에서 실행되는 외부 요청을 효과적으로 처리 할 수 ​​없습니다 ....

나는 IP의 수를 (그 대학 건물에서 ????) 수백, 주로 2 개의 사용자 에이전트로 추적했습니다)

직접적인 결과? 클라우드 서버가 있으므로 감소 응답을 허용하기 위해 동일한 메모리를 더 높은 메모리로 업그레이드해야했습니다.

이전 답변 :

#Baiduspider
User-agent: Baiduspider
Disallow: /

Baidu는 robot.txt 표시를 완전히 존중할 수없는 것 같습니다.

제가 한:

Wordpress (무료) 용 WP-Ban 플러그인을 설치하고 다음을 금지했습니다.

사용자 에이전트 :

  • 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를 사용하면 상대 오류 페이지를 정적 페이지로 다시 주소 지정하므로 전체 워드 프레스 설치가 금지 된 사용자 에이전트에 대해서만 또는 적어도 Mysql 데이터 테이블을 확인하지 않습니다.

(이것은 표준 Wordpress blablabla이므로 Wordpress Plugin을 설치할 수있는 모든 사람이 할 수 있습니다.이 절차에는 코딩이나 ftp 액세스가 필요하지 않습니다.)

나는 모두에게 동의합니다 : 인터넷은 무료이며, 누구든지 또는 누군가가해야 할 일을 절대적으로 금지하지만, 오늘 Baidoo는 Portughese로 작성된 웹 사이트를 스파이더하기 위해 한 달에 USD 40 더 많은 비용을 듭니다. 많은 중국인과 방문객들이이 언어를 읽고 이해할 수 있습니다.


1

ngx_http_access_modulenginx를 사용하여 IP 주소로 차단할 수 있습니다 . 단일 IP를 차단하려면 다음과 같이 conf 파일에 줄을 추가하십시오.

deny 12.34.567.1;

범위를 차단하려면 12.34.567.1 IP 주소가 포함 된 24 비트 서브넷 블록 (256 개의 IP 주소) 과 같은 CIDR 표기법을 사용 12.34.567.1/24하십시오. 자세한 내용은 이 페이지를 참조하십시오 .


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을 사용하여 조건을 연결할 수 있습니다. 마지막 줄은 "OR"을 포함하지 않아야합니다. 그렇지 않으면 규칙이 작동하지 않습니다.

Baidu는 절대 이유가없는 Wordpress 항목 ( "fckeditor", "wp-content")을 읽으려고하기 때문에 특히 불쾌합니다. MJ12bot도 나쁜 동물 중 하나입니다.

다시 쓰기 규칙은 403 Forbidden ([F])으로 스파이더를 차단하여 모든 파일에 액세스하고 (. *는 모든 파일에 대한 정규식 임) htaccess의 추가 평가 ([L])를 중지합니다.


1
F플래그는 의미 L를 명시 적으로 포함하기 때문에 필요하지 않은, L여기에 플래그를. 또한 같은 패턴 ^.*Baidu은 단순히와 같습니다 Baidu.
MrWhite
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.