봇은 웹에서 매우 일반적입니다. 실제로 2012년 현재 봇 트래픽이 웹상의 트래픽을 초과한 것으로 나타났습니다. 평균적으로 웹사이트 조회수의 50% 이상이 로봇에 의해서 발생합니다.

봇은 다양한 목적을 가지고 있으며 그 목적이 모두 나쁜 것은 아닙니다. Google 및 Bing에서 사용하는 봇과 같은 일부 봇은 페이지를 크롤링하고 색인을 생성합니다. Googlebot을 차단하면 사이트가 결국 구글 검색엔진의 색인에서 제거될 것이고, 더 이상 액세스할 수 없게 될 것이므로 콘텐츠가 더 이상 표시되지 않을 것입니다.

다른 봇은 틈새 용도가 더 많습니다. 전자 상거래 웹사이트를 크롤링하여 거래를 찾기 위한 목적으로만 존재하는 봇도 존재합니다. 그것은 주어진 제품을 찾을 수 있는 모든 e-shop을 상호 참조하므로 사이트의 다양한 상점에서 제품 가격을 표시할 수 있습니다. 일부 사이트에서는 이러한 항목을 사용하여 목록의 맨 위에 오도록 하므로 많은 Amazon 목록이 매일 몇 센트씩 점차 줄어들 것입니다.

이런 봇도 존재합니다. 스팸 봇은 블로그를 검색하여 다양한 댓글 시스템을 찾습니다. 인증 또는 보안 문자가 없는 댓글은 봇에 의해 채워질 수 있으며 스팸 댓글은 스팸 사이트에 대한 링크를 구축하고, 무지한 웹 사용자의 클릭을 캡처하거나, 부정적인 SEO로 무해한 사이트를 폭격하기 위해 남길 수도 있습니다.

해커 봇은 사이트 인프라를 보고 웹을 크롤링하기 위해 존재합니다. 그들은 공통적인 /admin.htm 같은 스타일의 URL에 대한 도메인을 테스트하고 기본 CMS를 사용하는 사용자 이름이나 비밀번호와 같은 사항을 변경하지 않은 웹사이트를 찾습니다. 그리고 그들은 접근하고 악용할 수 있는 취약한 사이트, 즉 보안에 신경 쓰지 않는 웹사이트를 찾습니다. 관리자 또는 사용자 정보를 수집하거나 URL을 해커 봇의 소유자에게 다시 보고할 수 있습니다. 그들은 단순히 사이트를 중단하고 자신의 콘텐츠로 대체하도록 프로그래밍될 수 있습니다.

악성 봇은 컴퓨터 바이러스에서 유래합니다. 그들은 사용자의 컴퓨터를 장악하고, 명백히든 백그라운드에서든, 해당 컴퓨터의 인터넷 액세스 기능을 사용하여 바이러스 소유자가 원하는 모든 작업을 수행합니다. 종종 이것은 사이트를 다운시키거나 해커가 코드의 버그를 통해 침입할 수 있을 정도로 서버에 스트레스를 주기 위한 DDoS 공격에서 주어진 URL을 망치는 데 사용됩니다.

스크레이퍼 봇도 악성입니다. 그들은 검색 엔진 봇처럼 작동하여 콘텐츠를 스크랩합니다. 그러나 검색 색인에 추가하는 대신 콘텐츠를 전체적으로 복사합니다. 콘텐츠, 스크립트, 미디어 모두 다운로드 되어 스팸 발송자의 서버에 배치되므로 스팸 사이트의 콘텐츠를 회전하거나 전체에 붙여 넣는 데 사용할 수 있습니다. 그것들은 모두 일회용이며 더 이상 유용하지 않을 때 수확하고 버리는 자원일 뿐입니다.

분명히, 이 봇에는 많은 문제가 있습니다. 그러나 목적 외에도 또 다른 부작용이 있습니다. 서버 부담. 봇은 검색 엔진 봇이 자주하는 것처럼 간단하고 가벼운 방식으로 귀하의 사이트에 액세스할 수 있지만 그렇게 하더라도 여전히 귀하의 사이트에 액세스하고 있습니다. 그들은 여전히 ​​콘텐츠를 다운로드하고 서버에서 요청하며 일반적으로 리소스를 사용합니다.

많은 경우 이로 인해 사이트가 다운될 수도 있습니다. 구글에 의해 해킹당해 다운된 사이트에 대한 보고서를 본 적이 있지만 구글은 그렇게 하지 않을 만큼 충분히 똑똑합니다. 하지만 웹에서 봇 트래픽이 급증하면서 해결해야 할 문제가 많이 있습니다.

이것은 나중에 따라올 데이터 분석 문제는 말할 것도 없습니다. Google Analytics에서 봇 트래픽을 제거하는 것은 큰 문제이므로 분석할 수 있는 정보는 실제로 소프트웨어 사용량이 아니라 사람의 사용량을 반영합니다.


봇 차단

사이트에 액세스하려는 봇을 차단하는 방법에는 두 가지가 있습니다. 하나는 robots.txt 파일을 통한 것이고 다른 하나는 .htaccess 파일을 통한 것입니다.

먼저 robots.txt에 대해 이야기해 보려 합니다. robots.txt 파일이란 무엇일까요?

robots.txt 파일은 서버의 루트 디렉토리에 존재하는 텍스트 파일입니다. 이 파일은 사이트에 액세스하려는 봇에게 지침을 제공하는 것입니다. 이를 사용하여 특정 봇 또는 모든 봇에 대한 봇 액세스를 차단할 수 있으며, 다음과 같이 /robots.txt에 의해 차단할 수 있습니다.

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


하지만 robots.txt 파일의 문제는 봇에게 지침을 제공한다는 것입니다. 봇이 이를 존중하지 않는다면(즉, 봇 작성자가 robots.txt를 무시하도록 프로그래밍하면) 아무 것도 할 수 없게 됩니다. 정문을 열어두는 것과 같지만 "도둑이라면 가까이 오지 마십시오"라는 표지판과 같습니다. 강도가 표지판을 무시하기로 선택하면 그 어떤 것도 그들이 문을 통과하는 것을 막을 수 없습니다.

.htaccess 파일은 Apache 웹 서버 소프트웨어에서 사용 하는 구성 파일입니다. 그것은 정문에 있는 경비원과 비교할 수 있으며 잠재적인 강도를 적극적으로 막습니다. 이 경우를 제외하고 경비원은 들어가려는 사람이 RobberHome에서 오는지, "나는 강도입니다"라고 적힌 셔츠를 입고 있는지 또는 다른 방법으로 자신을 식별하는지 확인할 수 있습니다.

이것이 의미하는 바는 .htaccess 파일이 대부분의 봇을 능동적으로 차단할 수 있지만 모든 봇을 차단할 수는 없을 것입니다. 특히 일반 사용자의 종속 컴퓨터인 봇넷 봇은 일반적으로 기본적으로 차단되지 않습니다. 이는 일반 사용자 소프트웨어를 사용하는 일반 사용자 컴퓨터이기 때문입니다. 차단하면 사람도 차단됩니다. 그러나 대부분의 다른 봇의 경우 .htaccess 파일이 이상적입니다.


.htaccess 파일 사용

.htaccess 파일을 통해 봇을 차단하는 데 사용할 세 가지 방법이 있습니다. 첫 번째는 봇의 사용자 에이전트를 사용하여 차단하는 가장 일반적인 방법입니다.

.htaccess 파일에서 먼저 "RewriteEngine on"이라는 줄이 필요합니다.

다음으로 "RewriteCond %{HTTP_USER_AGENT} \"를 자체 줄로 추가할 수 있습니다. 이것은 사용자 에이전트를 기반으로 재작성 조건을 활성화합니다. 여기에는 두 가지 옵션이 있습니다. 이 한 줄 뒤에 수많은 다른 사용자 에이전트를 추가하거나 하나의 사용자 에이전트를 추가한 다음 줄을 다시 추가할 수 있습니다. 예를 들어:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} \
12soso|\
192\.comagent|\
1noonbot|\
1on1searchbot|\
3de\_search2|\ [NC,OR]

또는:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^[Ww]eb[Bb]andit [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Acunetix [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^binlar [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]

또는:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
RewriteRule .* - [R=403,L]

또는:

SetEnvIfNoCase User-Agent .*bot.* search_robot
SetEnvIfNoCase User-Agent .*bing.* search_robot
SetEnvIfNoCase User-Agent .*crawl.* search_robot
Order Deny,Allow
Deny from env=search_robot
Allow from All


모두 다 잘 작동합니다. 첫 번째 예제에서는 ~500개 정도 항목마다 RewriteCond 줄을 추가해야 합니다. 이는 하나의 명령으로 줄이 길수록 Apache가 구문 분석하기 더 어렵기 때문입니다. 개별 항목으로 나누면 더 복잡해지지만 읽기는 더 쉽습니다. 

네 번째 예제는 mod_setenvif 아파치 모듈을 활성화해야 작동합니다. 자세한 내용은 http://www.askapache.com/htaccess/setenvif.html을 참조하세요. 어쨌든 네 가지 예제 중 하나를 사용할 수 있습니다.

끝에 있는 NC 및 OR 은 다시 쓰기 플래그입니다. 

NC는 항목이 대소문자를 구분하지 않는다는 것을 의미하는 "nocase"를 의미합니다. 예를 들어 '12soso' 와 '12Soso'는 같은 취급을 하겠다는 것을 뜻합니다. OR은 "이것 또는 저것"을 의미하며, 목록에 있는 항목 중 하나 또는 다른 항목과 일치하는 한 봇이 차단되는 반면, 모두인 "AND"와 대조됩니다.

여기에 있는 봇 목록 다음에 다시 쓰기 규칙을 지정해야 합니다. 이 모든 것은 두 부분으로 된 절의 첫 번째 부분일 뿐입니다. URL이 이것과 일치하면... 두 번째 부분은 어떻게 되는지입니다. 자체 줄에 "RewriteRule .* – [F,L]"을 추가합니다.

이것이 하는 일은 봇 사용자 에이전트에서 들어오는 모든 트래픽을 차단된 페이지로 리디렉션하는 것입니다. 특히 403 Forbidden 코드를 보냅니다. [F]는 Forbidden이고 [L]은 .htaccess 파일의 나머지 부분을 파싱한 후가 아니라 즉시 재작성 규칙을 적용해야 함을 나타내는 코드입니다.

다른 두 가지 방법은 HTTP 리퍼러를 기반으로 하는 차단과 IP 주소를 기반으로 하는 차단입니다.

HTTP 리퍼러로 차단하려면 "RewriteCond %{HTTP_REFERRER}"를 시작 라인으로 사용하고 www1.free-social-buttons\.com과 같은 리퍼러의 도메인을 사용하고 [NC,OR] 블록을 사용합니다. 나중에 동일한 RewriteRule 행을 추가하십시오. 다음과 같이 끝납니다.


RewriteCond %{HTTP_REFERER} www4.free-social-buttons\.com
RewriteRule ^.* - [F,L]


마지막으로 IP 주소를 기반으로 간단히 차단할 수 있습니다. 특정 IP 주소가 특히 해롭다는 것을 알게 되면 한 시간에 백 번 또는 무엇이든 사이트에 스팸을 발송할 수 있습니다. 별표는 IP 주소인 "Deny from *.*.*.*"라고 적기만 하면 됩니다. "Deny from 173.192.34.95"처럼 보이며 끝에 /28 또는 범위를 차단하는 무언가가 있을 수 있습니다.


출처: https://www.seoblog.com/block-bots-spiders-htaccess/


0 댓글