Compare commits

...

11 Commits

Author SHA1 Message Date
Роман 61ddd3428c
Update README.md 2018-09-11 14:17:41 +03:00
inpos 715dfad01e update README 2017-12-10 17:41:30 +03:00
inpos 06a2616595 . 2017-12-10 17:40:42 +03:00
inpos 311ca3bdad update README 2017-12-10 17:39:48 +03:00
inpos 7ec3f80305 PostgreSQL support 2017-12-10 16:53:51 +03:00
inpos 61e9aed4be roundcube 1.3 support 2017-12-10 16:46:25 +03:00
inpos 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'));

View File

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

View File

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

12
sql/postgresql.sql 100644
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;