Flood Filters - WelcomeWinters/gershwin GitHub Wiki
Custom flood filters detect known types of attacks and reject posts accordingly. They are made up of a condition and an action, for when all conditions are met.
These condition names are case-insensitive. All conditions are optional. If you don’t care about a particular value, don’t include it in your filter.
Condition | Format |
---|---|
array(x ,y ) |
|
array(x ,y ) |
Checks if there has been x
posts or more in the past y
minutes (on the current board).
The above conditions are currently unavailable in the latest git revision.
Condition | Format |
---|---|
name | Regexp |
trip | String |
Regexp | |
subject | Regexp |
body | Regexp |
filename | Regexp |
extension | Regexp |
ip | Regexp |
OP | Boolean |
has_file | Boolean |
Custom | Format |
---|---|
custom | Function |
Similar to events but the function must return true if the condition was met.
$config['flood_filters'][] = array(
'condition' => array(
'name' => '/^Anonymous$/',
'body' => '/h$/i',
'OP' => false,
'custom' => function($post) {
if ($post['name'] == 'Anonymous')
return true;
else
return false;
}
),
'action' => 'reject'
);
Variable | Type | Format | Default |
---|---|---|---|
message | Optional | String | "Posting throttled by flood filter." |
The post is rejected and an error message is displayed.
Variable | Type | Format | Default | Description |
---|---|---|---|---|
reason | Required | String | — | The displayed ban reason. |
expires | Optional | Integer |
0 (indefinite) |
The ban length in seconds. |
reject | Optional | Boolean | true |
Whether to allow the post before banning. |
message | Optional | String | NULL |
If defined, display an error instead of the ban page. |
all_boards | Optional | Boolean | false |
Whether to make the ban global. |
The user is immediately banned and the post may be rejected.
The following example, to be added in a configuration file, blocks users posting a reply with the name “surgeon”, ending his posts with “regards, the surgeon” or similar.
$config['flood_filters'][] = array(
'condition' => array(
'name' => '/^surgeon$/',
'body' => '/regards,\s+(the )?surgeon$/i',
'OP' => false
),
'action' => 'reject',
'message' => 'Go away, spammer.'
);
Instead of rejecting the post, you can ban the user too.
$config['flood_filters'][] = array(
'condition' => array(
'name' => '/^surgeon$/',
'body' => '/regards,\s+(the )?surgeon$/i',
'OP' => false
),
'action' => 'ban',
'expires' => 60 * 60 * 3, // 3 hours
'reason' => 'Go away, spammer.'
);