Compare commits
11 Commits
Author | SHA1 | Date |
---|---|---|
Роман | 61ddd3428c | |
inpos | 715dfad01e | |
inpos | 06a2616595 | |
inpos | 311ca3bdad | |
inpos | 7ec3f80305 | |
inpos | 61e9aed4be | |
inpos | 2afdc83164 | |
stalks | 45aa6e504b | |
Steve Allison | 4300072952 | |
Steve Allison | 094628753f | |
Steve Allison | eb878c1332 |
|
@ -5,7 +5,7 @@ Protects the Roundcube login page from bruteforce login attempts.
|
||||||
Original concept from the roundcube "security" plugin by Lazlo Westerhof.
|
Original concept from the roundcube "security" plugin by Lazlo Westerhof.
|
||||||
Wanting to fix the shortfalls of that plugin led me to a rewrite.
|
Wanting to fix the shortfalls of that plugin led me to a rewrite.
|
||||||
|
|
||||||
Requires Roundcube 0.9-beta or higher.
|
Requires Roundcube 1.3 or higher.
|
||||||
|
|
||||||
FEATURES
|
FEATURES
|
||||||
-------------------
|
-------------------
|
||||||
|
@ -34,8 +34,13 @@ Create an issue ticket at https://github.com/stalks/roundcube-defense/issues
|
||||||
|
|
||||||
HISTORY
|
HISTORY
|
||||||
--------------------
|
--------------------
|
||||||
|
10.12.2017 -- Version 1.0
|
||||||
|
|
||||||
21.02.2013 -- Version 0.1
|
21.02.2013 -- Version 0.1
|
||||||
- initial release, functional, still bug checking
|
- initial release, functional, still bug checking
|
||||||
|
|
||||||
===================
|
===================
|
||||||
Created by Steve Allison - https://www.nooblet.org/
|
|
||||||
|
Created by Steve Allison - https://www.nooblet.org/
|
||||||
|
|
||||||
|
Forked and upgraded by Inpos
|
||||||
|
|
|
@ -46,7 +46,7 @@ class defense extends rcube_plugin {
|
||||||
*/
|
*/
|
||||||
private function debug($string) {
|
private function debug($string) {
|
||||||
if (!$this->debugEnabled) { return; }
|
if (!$this->debugEnabled) { return; }
|
||||||
write_log($this->logfile, $this->ipaddr . " # " . $string);
|
rcube::write_log($this->logfile, $this->ipaddr . " # " . $string);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Check if IP is matched against all IPs in array,
|
* Check if IP is matched against all IPs in array,
|
||||||
|
@ -148,7 +148,7 @@ class defense extends rcube_plugin {
|
||||||
// I can't seem to try/catch database entries so I have no details regarding error
|
// I can't seem to try/catch database entries so I have no details regarding error
|
||||||
$string = "Error communicating with database.";
|
$string = "Error communicating with database.";
|
||||||
$this->debug($string);
|
$this->debug($string);
|
||||||
write_log('error', 'plugin::defense: ' . $string);
|
rcube::write_log('error', 'plugin::defense: ' . $string);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Return true if IP matches config whitelist
|
* Return true if IP matches config whitelist
|
||||||
|
@ -258,7 +258,7 @@ class defense extends rcube_plugin {
|
||||||
$this->debugEnabled = $this->rc->config->get('defense_debug_enabled', false);
|
$this->debugEnabled = $this->rc->config->get('defense_debug_enabled', false);
|
||||||
|
|
||||||
// set client ip
|
// set client ip
|
||||||
$this->ipaddr = rcmail_remote_ip();
|
$this->ipaddr = rcube_utils::remote_ip();
|
||||||
|
|
||||||
// Roundcube event hooks
|
// Roundcube event hooks
|
||||||
$this->add_hook('template_object_loginform', array($this, 'hookLoginForm'));
|
$this->add_hook('template_object_loginform', array($this, 'hookLoginForm'));
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$labels = array();
|
||||||
|
$labels['ipbanned'] = 'Вы заблокированы на %s';
|
||||||
|
|
||||||
|
?>
|
|
@ -8,9 +8,9 @@ CREATE TABLE IF NOT EXISTS `defense` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`epoch` int(11) NOT NULL,
|
`epoch` int(11) NOT NULL,
|
||||||
`type` tinyint(4) NOT NULL,
|
`type` tinyint(4) NOT NULL,
|
||||||
`ipaddr` varchar(40) NOT NULL,
|
`ipaddr` varchar(256) NOT NULL,
|
||||||
`data` text NOT NULL,
|
`data` text NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=30 ;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=30 ;
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
CREATE SEQUENCE defense_seq;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS defense (
|
||||||
|
id int NOT NULL DEFAULT NEXTVAL ('defense_seq'),
|
||||||
|
epoch int NOT NULL,
|
||||||
|
type smallint NOT NULL,
|
||||||
|
ipaddr varchar(256) NOT NULL,
|
||||||
|
data text NOT NULL,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
ALTER SEQUENCE defense_seq RESTART WITH 30;
|
Loading…
Reference in New Issue