diff options
author | Matthieu Napoli <matthieu@mnapoli.fr> | 2015-06-23 16:09:06 +0300 |
---|---|---|
committer | Matthieu Napoli <matthieu@mnapoli.fr> | 2015-06-24 22:22:02 +0300 |
commit | 12241c90dfb13d91b779f70ecc53eb1a643831dc (patch) | |
tree | 470bb74edb54e243a6c6b57b8e598375d4353459 /core/Tracker/Visit | |
parent | b1df4aa23693096e0c3cbb479b71b8cb1d4ddb4a (diff) |
#7674 Auto-update the referrer spammer blacklist
The blacklist is updated weekly from github (stored in the option table).
Diffstat (limited to 'core/Tracker/Visit')
-rw-r--r-- | core/Tracker/Visit/ReferrerSpamFilter.php | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/core/Tracker/Visit/ReferrerSpamFilter.php b/core/Tracker/Visit/ReferrerSpamFilter.php index 0c6ee6204a..fca4ab68c9 100644 --- a/core/Tracker/Visit/ReferrerSpamFilter.php +++ b/core/Tracker/Visit/ReferrerSpamFilter.php @@ -3,6 +3,7 @@ namespace Piwik\Tracker\Visit; use Piwik\Common; +use Piwik\Option; use Piwik\Tracker\Request; /** @@ -10,6 +11,7 @@ use Piwik\Tracker\Request; */ class ReferrerSpamFilter { + const OPTION_STORAGE_NAME = 'referrer_spam_blacklist'; /** * @var string[] */ @@ -43,8 +45,16 @@ class ReferrerSpamFilter return $this->spammerList; } - $file = PIWIK_INCLUDE_PATH . '/vendor/piwik/referrer-spam-blacklist/spammers.txt'; - $this->spammerList = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + // Read first from the auto-updated list in database + $list = Option::get(self::OPTION_STORAGE_NAME); + + if ($list) { + $this->spammerList = unserialize($list); + } else { + // Fallback to reading the bundled list + $file = PIWIK_INCLUDE_PATH . '/vendor/piwik/referrer-spam-blacklist/spammers.txt'; + $this->spammerList = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + } return $this->spammerList; } |