Mysql
 sql >> Datenbank >  >> RDS >> Mysql

IP-Blacklist in PHP+MySQL

Die folgende Abfrage muss nicht regelmäßig ausgeführt werden und könnte in einen Cron-Job verschoben werden:

DELETE FROM failures WHERE release_time < ?;

Diese "boolesche" Abfrage gibt 1 zurück, wenn die Person auf der schwarzen Liste steht, andernfalls 0:

SELECT
  COUNT(ip_address) as blacklisted
FROM blacklist
WHERE
  ip_address = ? AND
  release_time > ? AND
  failures > 5

Es könnte die Dinge beschleunigen, da Sie PHP nicht verwenden, um Zeilen zu zählen und Zahlen zu vergleichen:

if ($row['blacklisted']) { /* ... */ }

Ich glaube nicht, dass du letzteres wirklich vermeiden kannst.