Commit 3bbf7192 authored by Dominik Hebeler's avatar Dominik Hebeler

Eine einfach Botprotection über JavaScript eingefügt

parent 8e9e37e7
......@@ -15,11 +15,15 @@ class MetaGerSearch extends Controller
$time = microtime();
# Mit gelieferte Formulardaten parsen und abspeichern:
$metager->parseFormData($request);
#if($metager->getFokus() !== "bilder" )
#{
# Ein Schutz gegen bestimmte Bot-Angriffe, die uns passiert sind.
if ($metager->doBotProtection($request->input('bot', ""))) {
return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), url("/noaccess", ['redirect' => base64_encode(url()->full())])));
}
# Nach Spezialsuchen überprüfen:
$metager->checkSpecialSearches($request);
#}
# Alle Suchmaschinen erstellen
$metager->createSearchEngines($request);
......@@ -33,6 +37,14 @@ class MetaGerSearch extends Controller
return $metager->createView();
}
public function botProtection($redirect)
{
$hash = md5(date('YmdHi'));
return view('botProtection')
->with('hash', $hash)
->with('r', $redirect);
}
public function quicktips(Request $request)
{
$q = $request->input('q', '');
......
......@@ -310,6 +310,25 @@ class MetaGer
}
}
/**
* Diese Funktion überprüft, ob wir einen erweiterten Check auf Bots machen müssen.
* Z.B.: Wurden wir von einem Bot (dessen Anfragen aus dem Tor-Netzwerk kamen) mit tausenden
* Anfragen zu Telefonnummern überschwemmt. Bei diesen werden wir nun eine erweiterte Überprüfung
* durchführen.
* Für den Anfang werden wir alle Anfragen, die unter diese Kriterien fallen, nur noch beantworten, wenn
* JavaScript ausgeführt wird. (Mal schauen ob und wie lange dies ausreicht)
*/
public function doBotProtection($bot)
{
$hash = md5(date('YmdHi'));
if (preg_match("/^\d+$/s", $this->getEingabe()) && $bot !== $hash) {
return true;
} else {
return false;
}
}
public function combineResults($engines)
{
foreach ($engines as $engine) {
......
......@@ -3583,6 +3583,7 @@ $(document).ready(function() {
$('iframe').iFrameResize({
'autoResize': false
});
botProtection();
});
function tabs() {
......@@ -3793,6 +3794,14 @@ function fokiChanger() {
});
})(jQuery);
function botProtection() {
if ($("meta[name=pqr]").length > 0) {
var link = atob($("meta[name=pqr]").attr("content"));
var hash = $("meta[name=pq]").attr("content");
document.location.href = link + "&bot=" + hash;
}
}
function productWidget() {
var isMobile = false; //initiate as false
// device detection
......
This diff is collapsed.
......@@ -3,6 +3,7 @@ $(document).ready(function() {
$('iframe').iFrameResize({
'autoResize': false
});
botProtection();
});
function tabs() {
......@@ -213,6 +214,14 @@ function fokiChanger() {
});
})(jQuery);
function botProtection() {
if ($("meta[name=pqr]").length > 0) {
var link = atob($("meta[name=pqr]").attr("content"));
var hash = $("meta[name=pq]").attr("content");
document.location.href = link + "&bot=" + hash;
}
}
function productWidget() {
var isMobile = false; //initiate as false
// device detection
......
......@@ -135,6 +135,7 @@ Route::group(
Route::get('settings', 'StartpageController@loadSettings');
Route::match(['get', 'post'], 'meta/meta.ger3', 'MetaGerSearch@search');
Route::get('noaccess/{redirect}', 'MetaGerSearch@botProtection');
Route::get('meta/picture', 'Pictureproxy@get');
Route::get('clickstats', 'LogController@clicklog');
Route::get('pluginClose', 'LogController@pluginClose');
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment