1
0

Added "exclude urls" to ip validation functionality in spam block plugin. identi.ca is sending pingbacks but fails the ip validation!

This commit is contained in:
Grischa Brockhaus
2009-07-04 00:16:18 +00:00
parent f2dee79592
commit 45c300afd5
5 changed files with 196 additions and 161 deletions

@ -3,6 +3,10 @@
Version 1.5 () Version 1.5 ()
------------------------------------------------------------------------ ------------------------------------------------------------------------
* Added "exclude urls" to ip validation functionality in spam block
plugin. identi.ca is sending pingbacks but fails the ip validation!
(brockhaus)
* no longer use htmlspecialchars() on the blog's title and sub- * no longer use htmlspecialchars() on the blog's title and sub-
title, to allow for custom HTML code to appear and unify title, to allow for custom HTML code to appear and unify
only letting Smarty do the escaping (garvinhicking,falk) only letting Smarty do the escaping (garvinhicking,falk)

@ -67,9 +67,9 @@
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_ACTIVATE_DESC', 'Durchsucht Kommentare nach speziellen Zeichenketten und markiert diese als Spam.'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_ACTIVATE_DESC', 'Durchsucht Kommentare nach speziellen Zeichenketten und markiert diese als Spam.');
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS', 'Wortfilter für URLs'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS', 'Wortfilter für URLs');
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC', 'Reguläre Ausdrücke erlaubt, Zeichenkennten durch Semikolon (;) trennen. Das @-Zeichen muss mit \\@ angegeben werden.'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC', 'Reguläre Ausdrücke erlaubt, Zeichenketten durch Semikolon (;) trennen. Das @-Zeichen muss mit \\@, der Punkt als \\. angegeben werden.');
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS', 'Wortfilter für Autorennamen'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS', 'Wortfilter für Autorennamen');
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS_DESC', 'Reguläre Ausdrücke erlaubt, Zeichenkennten durch Semikolon (;) trennen. Das @-Zeichen muss mit \\@ angegeben werden.'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS_DESC', PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC);
@define('PLUGIN_EVENT_SPAMBLOCK_REASON_CHECKMAIL', 'Ungültige E-Mail-Adresse!'); @define('PLUGIN_EVENT_SPAMBLOCK_REASON_CHECKMAIL', 'Ungültige E-Mail-Adresse!');
@define('PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL', 'Auf ungültige E-Mail-Adressen prüfen?'); @define('PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL', 'Auf ungültige E-Mail-Adressen prüfen?');
@ -136,3 +136,6 @@
// Next lines were translated on 2009/06/03 // Next lines were translated on 2009/06/03
@define('PLUGIN_EVENT_SPAMBLOCK_REASON_BLOGG_SPAMLIST', 'durch blogg.de Blacklist gefiltert'); @define('PLUGIN_EVENT_SPAMBLOCK_REASON_BLOGG_SPAMLIST', 'durch blogg.de Blacklist gefiltert');
@define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE', 'URLs von IP Validatierung ausnehmen');
@define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE_DESC', 'URLs, die von der IP Validatierung ausgeschlossen werden sollen. ' . PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC);

@ -67,9 +67,9 @@
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_ACTIVATE_DESC', 'Durchsucht Kommentare nach speziellen Zeichenketten und markiert diese als Spam.'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_ACTIVATE_DESC', 'Durchsucht Kommentare nach speziellen Zeichenketten und markiert diese als Spam.');
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS', 'Wortfilter f<>r URLs'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS', 'Wortfilter f<>r URLs');
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC', 'Regul<75>re Ausdr<64>cke erlaubt, Zeichenkennten durch Semikolon (;) trennen. Das @-Zeichen muss mit \\@ angegeben werden.'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC', 'Regul<75>re Ausdr<64>cke erlaubt, Zeichenketten durch Semikolon (;) trennen. Das @-Zeichen muss mit \\@, der Punkt als \\. angegeben werden.');
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS', 'Wortfilter f<>r Autorennamen'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS', 'Wortfilter f<>r Autorennamen');
@define('PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS_DESC', 'Regul<75>re Ausdr<64>cke erlaubt, Zeichenkennten durch Semikolon (;) trennen. Das @-Zeichen muss mit \\@ angegeben werden.'); @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS_DESC', PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC);
@define('PLUGIN_EVENT_SPAMBLOCK_REASON_CHECKMAIL', 'Ung<6E>ltige E-Mail-Adresse!'); @define('PLUGIN_EVENT_SPAMBLOCK_REASON_CHECKMAIL', 'Ung<6E>ltige E-Mail-Adresse!');
@define('PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL', 'Auf ung<6E>ltige E-Mail-Adressen pr<70>fen?'); @define('PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL', 'Auf ung<6E>ltige E-Mail-Adressen pr<70>fen?');
@ -136,3 +136,6 @@
// Next lines were translated on 2009/06/03 // Next lines were translated on 2009/06/03
@define('PLUGIN_EVENT_SPAMBLOCK_REASON_BLOGG_SPAMLIST', 'durch blogg.de Blacklist gefiltert'); @define('PLUGIN_EVENT_SPAMBLOCK_REASON_BLOGG_SPAMLIST', 'durch blogg.de Blacklist gefiltert');
@define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE', 'URLs von IP Validatierung ausnehmen');
@define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE_DESC', 'URLs, die von der IP Validatierung ausgeschlossen werden sollen. ' . PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC);

@ -140,3 +140,6 @@
@define('PLUGIN_EVENT_SPAMBLOCK_SERVER_AKISMET', 'Original Akismet'); @define('PLUGIN_EVENT_SPAMBLOCK_SERVER_AKISMET', 'Original Akismet');
@define('PLUGIN_EVENT_SPAMBLOCK_SERVER_TPAS_ANON', 'TypePad Antispam (anonymized)'); @define('PLUGIN_EVENT_SPAMBLOCK_SERVER_TPAS_ANON', 'TypePad Antispam (anonymized)');
@define('PLUGIN_EVENT_SPAMBLOCK_SERVER_AKISMET_ANON', 'Original Akismet (anonymized)'); @define('PLUGIN_EVENT_SPAMBLOCK_SERVER_AKISMET_ANON', 'Original Akismet (anonymized)');
@define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE', 'Exclude URLs from IP Validation');
@define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE_DESC', 'URLs to be excluded from IP Validation. ' . PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC);

@ -39,7 +39,7 @@ var $filter_defaults;
'smarty' => '2.6.7', 'smarty' => '2.6.7',
'php' => '4.1.0' 'php' => '4.1.0'
)); ));
$propbag->add('version', '1.76'); $propbag->add('version', '1.77');
$propbag->add('event_hooks', array( $propbag->add('event_hooks', array(
'frontend_saveComment' => true, 'frontend_saveComment' => true,
'external_plugin' => true, 'external_plugin' => true,
@ -61,6 +61,7 @@ var $filter_defaults;
'forcemoderation', 'forcemoderation',
'forcemoderation_treat', 'forcemoderation_treat',
'trackback_ipvalidation' , 'trackback_ipvalidation' ,
'trackback_ipvalidation_url_exclude' ,
'forcemoderationt', 'forcemoderationt',
'forcemoderationt_treat', 'forcemoderationt_treat',
'disable_api_comments', 'disable_api_comments',
@ -122,6 +123,13 @@ var $filter_defaults;
$propbag->add('radio_per_row', '1'); $propbag->add('radio_per_row', '1');
break; break;
case 'trackback_ipvalidation_url_exclude':
$propbag->add('type', 'string');
$propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE);
$propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE_DESC);
$propbag->add('default', $this->get_default_exclude_urls());
break;
case 'trackback_check_url': case 'trackback_check_url':
$propbag->add('type', 'boolean'); $propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL);
@ -416,6 +424,10 @@ var $filter_defaults;
return true; return true;
} }
function get_default_exclude_urls() {
return '^http://identi\.ca/notice/\d+$';
}
function htaccess_update($new_ip) { function htaccess_update($new_ip) {
global $serendipity; global $serendipity;
@ -890,6 +902,15 @@ var $filter_defaults;
$trackback_ipvalidation_option = $this->get_config('trackback_ipvalidation','moderate'); $trackback_ipvalidation_option = $this->get_config('trackback_ipvalidation','moderate');
if (($addData['type'] == 'TRACKBACK' || $addData['type'] == 'PINGBACK') && $trackback_ipvalidation_option != 'no') { if (($addData['type'] == 'TRACKBACK' || $addData['type'] == 'PINGBACK') && $trackback_ipvalidation_option != 'no') {
$this->IsHardcoreSpammer(); $this->IsHardcoreSpammer();
$exclude_urls = explode(';',$this->get_config('trackback_ipvalidation_url_exclude'), $this->get_default_exclude_urls());
$found_exclude_url = false;
foreach ($exclude_urls as $exclude_url) {
$exclude_url = trim($exclude_url);
if (empty($exclude_url)) continue;
$found_exclude_url = preg_match('@' . $exclude_url . '@',$addData['url']);
if ($found_exclude_url) break;
}
if (!$found_exclude_url) {
$parts = @parse_url($addData['url']); $parts = @parse_url($addData['url']);
$tipval_method = ($trackback_ipvalidation_option == 'reject'?'REJECTED':'MODERATE'); $tipval_method = ($trackback_ipvalidation_option == 'reject'?'REJECTED':'MODERATE');
// Getting host from url successfully? // Getting host from url successfully?
@ -922,6 +943,7 @@ var $filter_defaults;
} }
} }
} }
}
// Filter Akismet Blacklist? // Filter Akismet Blacklist?
$akismet_apikey = $this->get_config('akismet'); $akismet_apikey = $this->get_config('akismet');