突然Webページのアクセスが増えた!!!
よく分からないリクエストが多発している!!!!!
もしかしてbotでは????????
怖い!!!!助けて!!!!!!!!!!!
そんな時は訪問者のIPアドレスを取得して、スクリプト実行ごとに実行回数を記録すればよい。
特定のアドレスから異様な数のアクセスがあれば、そのアドレスはbotやスクリプトを使っているかもしれない。
saveIP.php
$host = "hostname";
$db = "dbname";
$username = "username";
$pass = "password";
$dbh = new PDO("mysql:host=$host; dbname=$db; charset=utf8", $username, $pass);
$ip = ip2long($_SERVER["REMOTE_ADDR"]);//IPアドレスを取得して数値に変換
$sql = "INSERT INTO table (ip, num) VALUES ($ip, 0) ON DUPLICATE KEY UPDATE SET num = num+1 WHERE ip=$ip";//IPアドレスがDBになければ挿入、既存ならnumを1増やす
$req = $dbh->query($sql);
DBにtable
というテーブルがあり、ip(ユニーク)
、num
というカラムがあるという前提である。
一定時間ごとに一定以上のアクセスがあれば、リクエストされた内容を拒否すればよい。