Compare commits

...

11 Commits

Author SHA1 Message Date
61ddd3428c
Update README.md 2018-09-11 14:17:41 +03:00
715dfad01e update README 2017-12-10 17:41:30 +03:00
06a2616595 . 2017-12-10 17:40:42 +03:00
311ca3bdad update README 2017-12-10 17:39:48 +03:00
7ec3f80305 PostgreSQL support 2017-12-10 16:53:51 +03:00
61e9aed4be roundcube 1.3 support 2017-12-10 16:46:25 +03:00
2afdc83164 Russian locale 2017-12-10 16:42:09 +03:00
stalks
45aa6e504b Merge pull request #1 from stalks/develop
Catchup
2013-02-21 13:28:00 -08:00
Steve Allison
4300072952 Update README with roundcube version requirement 2013-02-21 19:15:04 +00:00
Steve Allison
094628753f Add image to readme 2013-02-21 19:13:33 +00:00
Steve Allison
eb878c1332 Update readme, TODO log ui 2013-02-21 19:03:30 +00:00
5 changed files with 30 additions and 7 deletions

View File

@ -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

View File

@ -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'));

6
localization/ru_RU.inc Normal file
View File

@ -0,0 +1,6 @@
<?php
$labels = array();
$labels['ipbanned'] = 'Вы заблокированы на %s';
?>

View File

@ -8,7 +8,7 @@ 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 ;

12
sql/postgresql.sql Normal file
View File

@ -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;