diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 37fa5b388a53991e214d9f0545ff9c7ad2cbc9e6..4f55449b1f31cf8f8cb780c4c747d9547f4c941c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,6 +24,7 @@ update(144.76.113.134): - scp -P 63824 metager@metager3.de:~/blacklistDomains.txt config/ - scp -P 63824 metager@metager3.de:~/adBlacklistUrl.txt config/ - scp -P 63824 metager@metager3.de:~/adBlacklistDomains.txt config/ + - scp -P 63824 metager@metager3.de:~/spam.txt config/ - scp -P 63824 metager@metager3.de:~/UsersSeeder.php database/seeds/ - touch storage/logs/laravel.log - touch storage/logs/worker.log @@ -67,6 +68,9 @@ update(metager2): - scp -P 63824 metager@metager3.de:~/sumasEn.json config/ - scp -P 63824 metager@metager3.de:~/blacklistUrl.txt config/ - scp -P 63824 metager@metager3.de:~/blacklistDomains.txt config/ + - scp -P 63824 metager@metager3.de:~/adBlacklistUrl.txt config/ + - scp -P 63824 metager@metager3.de:~/adBlacklistDomains.txt config/ + - scp -P 63824 metager@metager3.de:~/spam.txt config/ - scp -P 63824 metager@metager3.de:~/UsersSeeder.php database/seeds/ - touch storage/logs/laravel.log - touch storage/logs/worker.log diff --git a/app/Http/Controllers/HumanVerification.php b/app/Http/Controllers/HumanVerification.php index 671147738c098ae65d5da6633fe4cbc95f290425..2132aaa1226242b94fd56b78849de88f6c6d7306 100644 --- a/app/Http/Controllers/HumanVerification.php +++ b/app/Http/Controllers/HumanVerification.php @@ -26,16 +26,6 @@ class HumanVerification extends Controller } if ($request->getMethod() == 'POST') { - $dowCheck = true; - # Temp remove later - # Check for recent Spams - if (\preg_match("/eingabe=[\\d]{3}\s*chan.*$/si", $url)) { - # Sleep a random time - $rand = rand(0, 15); - sleep($rand); - $dowCheck = false; - } - $user = $redis->hgetall(HumanVerification::PREFIX . "." . $id); $user = ['uid' => $user["uid"], 'id' => $user["id"], @@ -49,7 +39,7 @@ class HumanVerification extends Controller $key = $request->input('captcha'); $key = strtolower($key); - if (!$dowCheck || !$hasher->check($key, $lockedKey)) { + if (!$hasher->check($key, $lockedKey)) { $captcha = Captcha::create("default", true); $pipeline = $redis->pipeline(); $pipeline->hset(HumanVerification::PREFIX . "." . $id, 'lockedKey', $captcha["key"]); @@ -200,6 +190,9 @@ class HumanVerification extends Controller public static function couldBeSpammer($ip) { + if (!env("REMOVE_SPAM_IN_TOR")) { + return false; + } $serverAddress = empty($_SERVER['SERVER_ADDR']) ? "144.76.88.77" : $_SERVER['SERVER_ADDR']; $queryUrl = "https://tor.metager.org?password=" . urlencode(env("TOR_PASSWORD")) . "&ra=" . urlencode($ip) . "&sa=" . urlencode($serverAddress) . "&sp=443"; diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php index 46e04a6584585b9a5e5e9192078ad1211a9b2626..2776e8757a72c90a8f65000544b3b7b0ae04efdf 100644 --- a/app/Http/Controllers/MetaGerSearch.php +++ b/app/Http/Controllers/MetaGerSearch.php @@ -16,6 +16,11 @@ class MetaGerSearch extends Controller { public function search(Request $request, MetaGer $metager) { + $spamEntries = []; + if (file_exists(config_path('spam.txt'))) { + $spamEntries = file(config_path('spam.txt')); + } + $focus = $request->input("focus", "web"); if ($focus === "maps") { @@ -35,6 +40,10 @@ class MetaGerSearch extends Controller # Nach Spezialsuchen überprüfen: $metager->checkSpecialSearches($request); + if (Cache::has('spam.' . $metager->getFokus() . "." . md5($metager->getQ()))) { + return response(Cache::get('spam.' . $metager->getFokus() . "." . md5($metager->getQ()))); + } + # Die Quicktips als Job erstellen $quicktips = $metager->createQuicktips(); @@ -66,7 +75,17 @@ class MetaGerSearch extends Controller $pipeline->execute(); # Die Ausgabe erstellen: - return $metager->createView($quicktipResults); + $resultpage = $metager->createView($quicktipResults); + foreach ($spamEntries as $index => $entry) { + $entry = trim($entry); + if (empty($entry)) { + continue; + } + if (preg_match("/" . $entry . "/si", $metager->getEingabe())) { + Cache::put('spam.' . $metager->getFokus() . "." . md5($metager->getQ()), $resultpage->render(), 1440); + } + } + return $resultpage; } public function loadMore(Request $request) diff --git a/app/Http/Middleware/HumanVerification.php b/app/Http/Middleware/HumanVerification.php index d60cf7ddc388bc897ee48a309bc531504f63d20d..3689591f160145e88ce33d5d505c128f9fe7f9ed 100644 --- a/app/Http/Middleware/HumanVerification.php +++ b/app/Http/Middleware/HumanVerification.php @@ -101,15 +101,6 @@ class HumanVerification "lockedKey" => "", ]; } - # Temp remove later - # Check for recent Spams - $eingabe = \Request::input('eingabe'); - if (\preg_match("/^[\\d]{3}\s*chan.*$/si", $eingabe)) { - # Sleep a random time between 1 and 5 seconds - $rand = rand(0, 5); - sleep($rand); - $user["locked"] = true; - } # A lot of automated requests are from websites that redirect users to our result page. # We will detect those requests and put a captcha diff --git a/build.sh b/build.sh index 2f3ec74aaf0dd06ec631c16e1b3c5371d1ad9d67..8e002c858b55946809e9033b141da6fdcad149fb 100644 --- a/build.sh +++ b/build.sh @@ -15,6 +15,7 @@ scp -P 63824 metager@metager3.de:~/blacklistUrl.txt config/ scp -P 63824 metager@metager3.de:~/blacklistDomains.txt config/ scp -P 63824 metager@metager3.de:~/adBlacklistUrl.txt config/ scp -P 63824 metager@metager3.de:~/adBlacklistDomains.txt config/ +scp -P 63824 metager@metager3.de:~/spam.txt config/ scp -P 63824 metager@metager3.de:~/UsersSeeder.php database/seeds/ touch storage/logs/laravel.log touch storage/logs/worker.log diff --git a/config/.gitignore b/config/.gitignore index d656390f7390261846d4004c73f6a8053e2a74c6..ea281d5f7c70a452763db8b6005fb75d7a909bac 100644 --- a/config/.gitignore +++ b/config/.gitignore @@ -3,4 +3,5 @@ sumasEn.xml sumas.json sumasEn.json blacklistUrl.txt -blacklistDomains.txt \ No newline at end of file +blacklistDomains.txt +spam.txt \ No newline at end of file