Mysql
 sql >> Base de données >  >> RDS >> Mysql

Liste noire IP en PHP+MySQL

La requête suivante n'a pas besoin d'être exécutée régulièrement et peut être déplacée vers une tâche cron :

DELETE FROM failures WHERE release_time < ?;

Cette requête "booléenne" renverra 1 si la personne est blacklistée, 0 sinon :

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

Cela pourrait accélérer les choses car vous n'utilisez pas PHP pour compter les lignes et comparer les nombres :

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

Je ne pense pas que vous puissiez vraiment éviter le dernier.