PHP

 

 

1. BotScout

  • 설명: BotScout는 스팸 봇을 탐지하고 차단하는 API를 제공합니다. 해당 서비스는 알려진 스팸 봇의 IP 주소, 이메일, 이름 등을 데이터베이스에서 조회하여 차단할 수 있도록 돕습니다.
  • 사이트: BotScout

사용법:

 

$api_key = 'YOUR_API_KEY';
$ip = $_SERVER['REMOTE_ADDR'];

$url = "https://botscout.com/test/?key=$api_key&ip=$ip";
$result = file_get_contents($url);

if (strpos($result, 'Y') !== false) {
    echo 'Bot detected!';
}

 

 

2. Project Honey Pot

  • 설명: Project Honey Pot은 악성 봇 및 스팸 발송자의 IP 주소를 수집하고 차단할 수 있는 무료 서비스입니다. 이 데이터를 사용하여 PHP 애플리케이션에서 악성 봇을 탐지할 수 있습니다.
  • 사이트: Project Honey Pot

사용법:

$ip = $_SERVER['REMOTE_ADDR'];
$api_key = 'YOUR_API_KEY';
$query = $api_key . "." . implode(".", array_reverse(explode(".", $ip))) . ".dnsbl.httpbl.org";
$result = dns_get_record($query, DNS_A);

if (!empty($result) && $result[0]['ip']) {
    $parts = explode('.', $result[0]['ip']);
    $threat_score = $parts[2];
    
    if ($threat_score > 0) {
        echo "Malicious bot detected!";
    }
}

 

 

 

3. User-Agent 기반 차단

  • 설명: 악성 봇은 종종 잘못된 User-Agent를 사용하므로 이를 활용해 기본적인 차단이 가능합니다. Browscap과 같은 라이브러리를 사용하면 사용자의 User-Agent를 검사하여 봇을 차단할 수 있습니다.
  • 라이브러리: phpbrowscap

사용법:

 

require 'vendor/autoload.php';

$browscap = new \BrowscapPHP\Browscap();
$browscap->updateCache();
$info = $browscap->getBrowser();

if ($info->crawler) {
    echo "Bot detected!";
}

 

 

4. reCAPTCHA

  • 설명: Google의 reCAPTCHA는 사용자가 사람인지 봇인지 판단할 수 있는 무료 서비스로, 폼 제출 시 봇 활동을 차단하는 데 유용합니다.
  • 사이트: reCAPTCHA

사용법:

$response = $_POST['g-recaptcha-response'];
$secret_key = 'YOUR_SECRET_KEY';

$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secret_key&response=$response";
$result = file_get_contents($url);
$result_json = json_decode($result);

if ($result_json->success) {
    echo 'Human verified';
} else {
    echo 'Bot detected!';
}

 

 

위의 라이브러리와 서비스를 사용하면 PHP 애플리케이션에서 악성 봇을 효과적으로 차단할 수 있습니다. 필요에 따라 여러 방법을 조합해 사용하는 것이 좋습니다.

 

 

 

 

about author

PHRASE

Level 60  라이트

부유하다고 친하지 않으며 가난하다고 멀리하지 않음은 이것이 바로 인간세상 대장부이고, 부유하면 가깝게 지내고 가난하다고 멀리하면 이는 곧 인간세상 소인배이다. -소동파

댓글 ( 0)

댓글 남기기

작성