sql >> Base de Datos >  >> RDS >> Mysql

Lista negra de IP en PHP+MySQL

La siguiente consulta no necesita ejecutarse regularmente y podría moverse a un trabajo cron:

DELETE FROM failures WHERE release_time < ?;

Esta consulta "booleana" devolverá 1 si la persona está en la lista negra, 0 de lo contrario:

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

Podría acelerar las cosas ya que no usa PHP para contar filas y comparar números:

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

Realmente no creo que puedas evitar el último.