MWX/SpamFerret/tables/client: Difference between revisions

From Woozle Writes Code
< MWX‎ | SpamFerret‎ | tables
Jump to navigation Jump to search
(about - fields)
(8/8: dropping ID field)
Line 1: Line 1:
==About==
==About==
* '''History''':
** '''2009-08-08''' Dropping "ID" field, because "Address" should be the key
* '''Fields''':
* '''Fields''':
** '''Retries''':
** '''Retries''':
Line 9: Line 11:
==SQL==
==SQL==
<mysql>CREATE TABLE `clients` (
<mysql>CREATE TABLE `clients` (
  `ID` INT NOT NULL AUTO_INCREMENT,
   `Address`  VARCHAR(15) NOT NULL      COMMENT 'IP address',
   `Address`  VARCHAR(15)               COMMENT 'IP address',
   `WhenFirst` DATETIME                  COMMENT 'when this IP address first submitted a spam',
   `WhenFirst` DATETIME                  COMMENT 'when this IP address first submitted a spam',
   `WhenLast`  DATETIME                  COMMENT 'when this IP address last submitted a spam',
   `WhenLast`  DATETIME                  COMMENT 'when this IP address last submitted a spam',
Line 17: Line 18:
   `doBlock`  TINYINT(1)                COMMENT "TRUE = permanent block",
   `doBlock`  TINYINT(1)                COMMENT "TRUE = permanent block",
   `Notes`    VARCHAR(255) DEFAULT NULL COMMENT "human-added notes",
   `Notes`    VARCHAR(255) DEFAULT NULL COMMENT "human-added notes",
   PRIMARY KEY(`ID`)
   PRIMARY KEY(`Address`)
)
)
ENGINE = MYISAM;</mysql>
ENGINE = MYISAM;</mysql>

Revision as of 01:36, 9 August 2009

About

  • History:
    • 2009-08-08 Dropping "ID" field, because "Address" should be the key
  • Fields:
    • Retries:
      • Each time a client submits spam, clients.Retries increments...
      • ...unless clients.WhenLast was sufficiently long ago, in which case clients.Retries is reset to 0 (and WhenLast is updated).
      • Each time a client submits non-spam, if clients.Retries is too high and WhenLast is recent enough, the content is refused without checking for a spam match.
      • Net effect is that too many spams within a certain period of time causes an IP to be temporarily blacklisted.

SQL

<mysql>CREATE TABLE `clients` (

 `Address`   VARCHAR(15) NOT NULL      COMMENT 'IP address',
 `WhenFirst` DATETIME                  COMMENT 'when this IP address first submitted a spam',
 `WhenLast`  DATETIME                  COMMENT 'when this IP address last submitted a spam',
 `Retries`   INT DEFAULT NULL          COMMENT 'number of spam retries',
 `Count`     INT DEFAULT 0             COMMENT 'number of attempts',
 `doBlock`   TINYINT(1)                COMMENT "TRUE = permanent block",
 `Notes`     VARCHAR(255) DEFAULT NULL COMMENT "human-added notes",
 PRIMARY KEY(`Address`)

) ENGINE = MYISAM;</mysql>