Online Marketing Forum Deutschland
 
ABAKUS Online Marketing Forum
Suchmaschinenoptimierung
+ABAKUS
ABAKUS bei Google+
Facebook
ABAKUS bei Facebook
Google+ SEO Community von ABAKUS
Google+
SEO Community

   

ABAKUS Foren-Übersicht -> Spiders / Robots Themen
 

Linkaufrufe von Bots begrenzen

Neues Thema eröffnen   Neue Antwort erstellen
 BotSteuerung netct.in aussperren?  
Robert79

pr


: 21.10.2011
: 8



: 19.08.2015, 12:14    : Linkaufrufe von Bots begrenzen
Von: Robert79
Robert79
00 19.08.2015, 12:14
Antworten mit Zitat Antworten mit Zitat

Guten Tag zusammen,

seit einigen Wochen "klicken" Bots/Scripte/Spider/wasauchimmer in schöner Regelmäßigkeit auf meine Affiliate-Links. Ich habe auf vielen Unterseiten jeweils eine Art Preisübersicht mit Links zu einzelnen Produkten, sodass pro Durchlauf mehr als 500 Klicks gemacht werden. Ich wurde von einem Affiliate-Netzwerk bereits darauf aufmerksam gemacht, dies zu unterbinden. Die Links sind alle mit "nofollow" versehen und die Weiterleitung auf die Partnerseiten geschieht per htaccess. Ich schaue nun täglich nach, ob am vergangenen Tag wieder ein Bot unterwegs war und sperre die IP-Range per htaccess aus. Die Server stehen mal in den USA, in Ungarn oder auch in der Ukraine.

Ich nutze Wordpress und habe keine großen Einflussmöglichkeiten auf die Einstellungen des Servers (nur Webspeicher gemietet). Weiß jemand einen Rat, wie man den Zugriff des Bots/Scripts begrenzen oder ganz verhindern kann? Sollte man die Links verschleiern bzw. nicht mehr klickbar machen (wenn ja, wie)? Oder gibt es eine Möglichkeit z.B. per PHP-Redirect den Bot/das Script ins Leere laufen zu lassen oder nach soundsovielen Linkaufrufen den Zugriff zu verweigern? Vielleicht gibt es auch ein geeignetes Plugin für Wordpress?

Hier kommt ein Auszug des Zugriffes von gestern:

84.3.11.236 - - [18/Aug/2015:12:27:37 +0200] "GET / HTTP/1.1" 200 28443 "-" "Java/1.8.0_51"
84.3.11.236 - - [18/Aug/2015:12:27:38 +0200] "GET /xmlrpc.php?rsd HTTP/1.1" 200 783 "-" "Java/1.8.0_51"
84.3.11.236 - - [18/Aug/2015:12:27:38 +0200] "GET /candle-light-dinner-berlin HTTP/1.1" 301 - "-" "Java/1.8.0_51"

Nun werden zahlreiche weitere Unterseiten abgerufen. Danach werden die darin enthaltenen Links aufgerufen.

84.3.11.236 - - [18/Aug/2015:12:46:58 +0200] "GET /ee/ee13159 HTTP/1.1" 301 346 "-" "Java/1.8.0_51"
84.3.11.236 - - [18/Aug/2015:12:46:59 +0200] "GET /ee/ee13874 HTTP/1.1" 301 346 "-" "Java/1.8.0_51"
84.3.11.236 - - [18/Aug/2015:12:47:00 +0200] "GET /ee/ee13938 HTTP/1.1" 301 356 "-" "Java/1.8.0_51"
84.3.11.236 - - [18/Aug/2015:12:47:00 +0200] "GET /ee/ee14061 HTTP/1.1" 301 352 "-" "Java/1.8.0_51"

"ee" ist die Abkürzung für einen Partner und die Zahl dahinter ist das jeweilige Produkt. Im Verzeichnis "ee" liegt die htaccess-Datei, welche die Weiterleitung zu den Produkten übernimmt (RedirectPermanent /ee/ee14061 Affiliate-Link).

Viele Grüße und schon einmal vielen Dank fürs Durchlesen,
Robert
00
Nach oben
Robert79 Private Nachricht senden
ABAKUS


: Werbung 




Professionelles und nachhaltiges Linkbuilding bei ABAKUS Internet Marketing.
Nutzen Sie unsere jahrelange Erfahrung und lassen Sie sich zu den Themen Offpage-Optimierung und Linkaufbau beraten!
Jetzt anfragen unter: www.abakus-internet-marketing.de

Melegrian

pr


: 30.01.2005
: 3170



: 19.08.2015, 22:12    : Linkaufrufe von Bots begrenzen
Von: Melegrian
Melegrian
00 19.08.2015, 22:12
Antworten mit Zitat Antworten mit Zitat

Dass Bots Links folgen, das ist ja zunächst einmal nichts Außergewöhnliches, dafür sind Links ja da. Ein Link ist ja nicht mehr als ein Verweis und ob der nun als rel-Attribut nofollow enthält oder nicht, dass ist den Bots ja egal. Möglicherweise hängt es ja auch nur mit der Form Deiner Weiterleitungen zusammen, dass die Bots das anfänglich für interne Links halten?

Früher genügte es Links in JavaScript zu notieren, heute nicht mehr. Bei einfach gestrickten Bots vielleicht ja doch noch, wenn die Buttons nur eine Funktion aufrufen, einfach einmal ausprobieren.

Code:
<button onclick="leiteweiter('link340')">Apfelsinen<button>
<button onclick="leiteweiter('link341')">Bananen<button>

Noch besser:
Code:
<button id="link340">Apfelsinen<button>
<button id="link341">Bananen<button>

Und mit addEventListener überwachen, die Klicks abfangen und weiterleiten, denn das werden normale Bots kaum machen.

Scripts und Plugins für Cookie-Hinweise
00
Nach oben
Melegrian Private Nachricht senden
nerd

pr


: 15.02.2005
: 3827



: 20.08.2015, 05:01    : Linkaufrufe von Bots begrenzen
Von: nerd
nerd
00 20.08.2015, 05:01
Antworten mit Zitat Antworten mit Zitat

Alle meine links gehen auf eine weiterleitung.php, in welcher die klicks mit zeitstempel, ip usw. geloggt werden. Wenn eine IP mehr als 3 links in 5 sekunden aufruft, dann wird diese ip automatisch fuer eine woche gesperrt. Ausserdem werden vorherige logeintraege der selben IP aus meinen klick-logs geloescht und ein flag in der session gesetzt, worauf alle weiteren aufrufe dieser IP auf der kompletten seite nur noch status 404 zurueckgeliefert bekommen.

Auf der seite ist auch ein per css versteckter link der in der robots.txt als disallow gekennzeichnet ist. Alle bots die diesem link folgen werden ebenfalls rausgeworfen.
Diese loesung ist extrem pflegeleicht und ich muss nicht laufend irgendwelche ip adressen per hand aktualisieren.

BTW. in deinem beispiel kannst du doch auch per .htaccess einfach alles rauswerfen was "Java" im user-agent hat.

Ich hab das mal im Internet gelesen!
00
Nach oben
nerd Private Nachricht senden
ABAKUS


: Werbung 




Professionelles und nachhaltiges Linkbuilding bei ABAKUS Internet Marketing.
Nutzen Sie unsere jahrelange Erfahrung und lassen Sie sich zu den Themen Offpage-Optimierung und Linkaufbau beraten!
Jetzt anfragen unter: www.abakus-internet-marketing.de

Robert79

pr


: 21.10.2011
: 8



: 20.08.2015, 19:29    : Linkaufrufe von Bots begrenzen
Von: Robert79
Robert79
00 20.08.2015, 19:29
Antworten mit Zitat Antworten mit Zitat

Ich danke euch beiden für die Tipps! Leider bin in Javascript und PHP kein Profi.

Ich habe mir jetzt angeschaut, wie man die Links mit Javascript umsetzen kann, ohne das ein "a href" benutzt wird. Leider habe ich es mit onmouseover bzw. mouseover nicht hinbekommen, dass in der Statusleiste des Browsers irgendetwas (wie z.B. die URL) angezeigt wird. Sowas würde ich schon gerne haben wollen. Ich selbst würde eher nicht auf einen Link klicken, bei dem ich beim Drüberfahren mit der Maus nichts in der Statusleiste lese.

Alle Java-Versionen als user-agent habe ich jetzt gesperrt. Ich musste leider feststellen, dass sich einige Scripte/Bots auch mit ganz normalen Browserkennungen angemeldet haben. Das ist also nur eine Teillösung.

@nerd
Teile deiner Datei weiterleitung.php würdest du mir nicht zufällig zur Verfügung stellen??? Der Teil mit der automatischen Sperrung nach einer Anzahl von Aufrufen in soundsoviel Sekunden wäre sehr hilfreich für mich.
00
Nach oben
Robert79 Private Nachricht senden
nerd

pr


: 15.02.2005
: 3827



: 21.08.2015, 00:32    : Linkaufrufe von Bots begrenzen
Von: nerd
nerd
00 21.08.2015, 00:32
Antworten mit Zitat Antworten mit Zitat

Hm dazu braucht es doch nicht viel.
Einfach zaehlen wieviele datensaetze mit der selben IP du in den letzten x sekunden hattest, und wenn es nich nicht zuviele sind dann diese anfrage mit zeitstempel und IP in der selben tabelle loggen und auf die gewuenschte seite weiterleiten.

Ich hab das mal im Internet gelesen!
00
Nach oben
nerd Private Nachricht senden
Melegrian

pr


: 30.01.2005
: 3170



: 21.08.2015, 19:15    : Linkaufrufe von Bots begrenzen
Von: Melegrian
Melegrian
00 21.08.2015, 19:15
Antworten mit Zitat Antworten mit Zitat

Robert79 hat Folgendes geschrieben:
Sowas würde ich schon gerne haben wollen.

Nun habe ich gerade einen Seite mit Button fertig. In der Seite einen Button:

Code:
<button id="diese_id" type="button"> Download </button>

Dazu dann eine kleine JS-Datei:

Code:
if (document.getElementById("diese_id")) {
    var starte_download = document.getElementById("diese_id");

    if (window.addEventListener) {
        starte_download.addEventListener("click", leiteWeiter, false);
    }
    else if (window.attachEvent) {
        starte_download.attachEvent("onclick", leiteWeiter);
    }
}
function leiteWeiter() {
    window.location.href = "http://www.example.com/wohin_auch_immer.endung";
}

Bei vielen Download-Verzeichnissen müsstest Du die noch in einer Funktion kapseln, um mehr als eine ID zu übernehmen. In diesem Fall würde dann nicht nur eine einzelne ID überwacht, sondern ein DIV-Bereich oder wie auch immer. Zwei Beispiele von mir:

http://www.coder-welten.com/event-tracking/

Bin aber über ein anderes Problem gestolpert. IE und FF alles OK beim Download, nur der Chrome meldet:

:
"... ist ein ungewöhnlicher Download und könnte schädlich sein."

In Foren gesucht und was gefunden, ohne SSL Zertifikat oder kostenpflichtige Signatur müssen Download-Verzeichnisse erst von Google gecrawlet werden, bevor diese Meldung verschwindet. Stelle mir nun die Frage, wenn Bots die nicht finden sollen, ob Google die dann findet. Zumal das Ziel der Weiterleitung ja nicht das Zip-Archiv ist, sondern nur eine Datei, die den Download auslöst und notiert.

Scripts und Plugins für Cookie-Hinweise
00
Nach oben
Melegrian Private Nachricht senden
ABAKUS


: Werbung 




Professionelles und nachhaltiges Linkbuilding bei ABAKUS Internet Marketing.
Nutzen Sie unsere jahrelange Erfahrung und lassen Sie sich zu den Themen Offpage-Optimierung und Linkaufbau beraten!
Jetzt anfragen unter: www.abakus-internet-marketing.de

Pompom

pr


: 10.09.2004
: 3753



: 22.08.2015, 09:51    : Linkaufrufe von Bots begrenzen
Von: Pompom
Pompom
00 22.08.2015, 09:51
Antworten mit Zitat Antworten mit Zitat

Hast Du sinnvolle Zugriffe über Java-Referer?
Wenn nicht: Sperre über die .htaccess doch einfach die Zugriffe.
00
Nach oben
Pompom Private Nachricht senden
Robert79

pr


: 21.10.2011
: 8



: 23.08.2015, 10:59    : Linkaufrufe von Bots begrenzen
Von: Robert79
Robert79
00 23.08.2015, 10:59
Antworten mit Zitat Antworten mit Zitat

Danke für eure Rückmeldungen!

@Melegrian
Mhhhmhm. Das schreckt mich ehrlich gesagt mit der Chrome-Meldung ein bisschen ab. Damit habe ich ja nichts gewonnen, wenn der Nutzer solch eine Meldung sieht.

@Pompom
"Alle Java-Versionen als user-agent habe ich jetzt gesperrt ..."
--------

Als Anfänger in PHP habe ich mir jetzt folgendes Script gebastelt. Es ist sicher viel zu umständlich und hat bestimmt auch Ungereimtheiten (wie die Sperrung nach soundsoviel Zugriffen in einer Minute). Das könnte man sicher besser lösen. Aber besser bekomme ich es nicht hin. Ich bin für jeden Verbesserungsvorschlag dankbar.

Code:
<?php

# Logdatei auf Zeilenanzahl pruefen und bei mehr als x Zeilen Datei leeren
$datei="logdatei.txt";
$logdatei = fopen($datei,"r+");
$zeilenanzahl = 0;
while ( $zeile = fgets($logdatei,4096) )
     {
       $zeilenanzahl++;
     }

if ($zeilenanzahl > "20")
   {
   unlink($datei);
   touch($datei);
   }


# Logdaten schreiben mit Unterscheidung nach Minuten
fputs($logdatei,
    date("d.m.Y, H:i",time()) .
    ", " . $_SERVER['REMOTE_ADDR'] ."\n"
    );
fclose($logdatei);


# Logdatei auslesen und Zeilenumbrueche korrigieren
$text = file_get_contents('logdatei.txt');
$text = str_replace("\r\n", "\n", $text);
$text = str_replace("\r", "\n", $text);


# Array bilden, bei Vorhandensein von mindestens 15 Datensaetzen die Teile 6 bis 15 auf Uebereinstimmung pruefen (10 Zugriffe innerhalb einer Minute), IP mithilfe der htaccess-Datei sperren
$array = explode("\n", $text);
   if ($array[15] != 0) {
      if ($array[5] == $array[6] && $array[6] == $array[7] && $array[7] == $array[8] && $array[8] == $array[9] && $array[9] == $array[10] && $array[10] == $array[11]&& $array[11] == $array[12] && $array[12] == $array[13] && $array[13] == $array[14] && $array[14] == $array[15]) {
         $htaccessdatei = fopen(".htaccess","a");
         fputs($htaccessdatei, "order allow,deny"."\n"."deny from ".$_SERVER['REMOTE_ADDR'] ."\n"."allow from all"."\n\n");
         fclose($htaccessdatei);
      }
   }


# Weiterleitung auf die gewuenschte Seite (Aufruf ueber weiterleitung.php?link=123)
switch ($_GET['link']) {
case "123": header("Location: http://www.example.com/123"); break;
case "345": header("Location: http://www.example.com/345"); break;
}

?>
00
Nach oben
Robert79 Private Nachricht senden
Melegrian

pr


: 30.01.2005
: 3170



: 23.08.2015, 12:45    : Linkaufrufe von Bots begrenzen
Von: Melegrian
Melegrian
00 23.08.2015, 12:45
Antworten mit Zitat Antworten mit Zitat

Kann ich auf die Schnelle nicht nachvollziehen. Hier etwas von mir.

Schreibt die Zugriffe der letzten -3600 Sekunden in Datei, die Zugriffe von vor -3601 Sekunden und älter werden bei nächsten Aufruf wieder gelöscht, so das die Datei nicht aufbläht. So wie eine IP $vorgabe_maxh überschreitet, kann dann Exit für diese IP ausgelöst werden, alle anderen IP-Adressen sind nicht betroffen. Kannst ja im Browser 11 mal aufrufen, beim elften Aufruf sollte dann die gesperrte angezeigt werden.

Du brauchst nicht die htaccess überschreiben, Du brauchst nur mit exit die weitere Ausführung beenden. Oder die Weiterleitung nur im Else-Zweig ausführen.

Code:
<?php
$kam_mit_ip = $_SERVER["REMOTE_ADDR"];
$controldatei = "visitscontrol.txt";
$speichertime = time();
$kontrollzeit = $speichertime -3600;
$vorgabe_maxh = 10;                    // max pro h von einer ip
$max_anzahl   =  0;
$alterstring  = "";
$gesamt_stunde = array();

// Prüfen, ob die Datei existiert und lesbar ist
if (file_exists($controldatei) and is_readable($controldatei)) {
    // Datei zum Lesen öffnen
    $lesen = fopen($controldatei,"r") or exit("F1");

    // Eine Zeile nach der anderen lesen, so lange nicht das Dateiende erreicht ist.
    while(!feof($lesen)) {
        $eintraege = fgets($lesen);
        $eintraege = preg_replace("/[^a-zA-Z0-9\/_.:&=-]/", "", $eintraege);
        parse_str($eintraege);

        // Prüfen, ob beibe Variablen geparst wurden und einen Wert enthalten.
        if (isset($prostunde) and !empty($prostunde) and isset($ipad) and !empty($ipad)) {

        // Nur die Einträge erneut in $alterstring einlesen, die in der letzten Stunde (-3600) erfolgten
            if ($prostunde > $kontrollzeit){
                $gesamt_stunde[] = $ipad;
                $alterstring .= trim("t&prostunde=".$prostunde."&ipad=".$ipad)."\n";

                unset($prostunde);
                unset($ipad);
            }
        }
    }
    fclose($lesen);
}

$neuerstring = trim("t&prostunde=".$speichertime."&ipad=".$kam_mit_ip)."\n";
file_put_contents($controldatei, $alterstring.$neuerstring, LOCK_EX);

$zaehlips   = array_count_values($gesamt_stunde);
$max_anzahl = max($zaehlips);
$welche_ip  = "-";

if ($max_anzahl >= $vorgabe_maxh) {
    $welche_ip = array_search($max_anzahl, $zaehlips);
}
if ($welche_ip == $kam_mit_ip) {

    echo $welche_ip;
    /*
     Gibt jetzt nur die IP aus, die bereits max pro h von einer ip
     überschritten hat. Dafür könnte auch exit folgen.
    */
}
else echo "Es hat noch keine IP-Adresse das Limit überschritten.";
?>


Robert79 hat Folgendes geschrieben:
Das schreckt mich ehrlich gesagt mit der Chrome-Meldung ein bisschen ab.

Geht mir nicht anders, werde mir das noch einige Tage anschauen, wenn es dann immer noch so sein sollte, irgendwie ändern. Liegt ja vielleicht nicht an JavaScript, ist vielleicht bei allen neuen Download-Dateien so, dass die erst gecrawlet werden müssen? Nur bisher scheint da noch kein Bot durchgekommen zu sein. Bei meinen älteren Scripts, die ich so zum Download anbiete, ist es ja auch nicht. Wenn das nur an der JS Weiterleitung liegen sollte, dann muss ich halt mal schauen.

Scripts und Plugins für Cookie-Hinweise
00
Nach oben
Melegrian Private Nachricht senden
nerd

pr


: 15.02.2005
: 3827



: 24.08.2015, 01:05    : Linkaufrufe von Bots begrenzen
Von: nerd
nerd
00 24.08.2015, 01:05
Antworten mit Zitat Antworten mit Zitat

Robert79 hat Folgendes geschrieben:

Als Anfänger in PHP habe ich mir jetzt folgendes Script gebastelt.
Code:
<?php

# Logdatei auf Zeilenanzahl pruefen und bei mehr als x Zeilen Datei leeren
[...]

Das sieht mir extrem kompliziert aus. Ich wuerde hier empfehlen eine datenbank zu verwenden, einfach weil es einfacher und uebersichtlicher zu programmieren ist, und du musst nicht zeile fuer zeile haendisch parsen, zaehlenn und herrausfinden wie alt der datensatz ist.


Robert79 hat Folgendes geschrieben:

Code:

# Weiterleitung auf die gewuenschte Seite (Aufruf ueber weiterleitung.php?link=123)
switch ($_GET['link']) {
case "123": header("Location: http://www.example.com/123"); break;
case "345": header("Location: http://www.example.com/345"); break;
}

?>

Ohje, ist das wirklich dein code den du auf deinem server einsetzt?
Das ist schlecht weil du hier die programm-logik (WAS soll passieren) mit den daten (in dem falle: auf welche url soll weitergeleitet werden?) mixt. Idealerweise haeltst du die beiden konzepte getrennt, etwa so:
Code:

// parameter mit (int) zwingend in einen zahlenwert konvertieren, und pruefen on der wert gesetzt ist:
$link_id = (int)$_GET['link'];
if(!empty($link_id)) {
$sql  = "SELECT destination FROM redirects WHERE id = ".$link_id;
[abfrage ueber deine db klasse]
if(!empty(result['destination'])) {
$redirect = result['destination'];
} else {
$redirect = error_log("Link ID ".$link_id." nicht vornhanden (ref: ".$_SERVER['HTTP_REFERER'].")");
}


Wenn du deine daten alle schoen praktisch in der datenbank ablegt, ist es deutlich einfacher sie spaeter zu bearbeiten, zu aendern usw. und auszuwerten - entweder ueber phpMyAdmin oder du bastelst dir noch eine mobile-freundliche seite um sie vom handy aus bearbeiten zu koennen.

Ich hab das mal im Internet gelesen!
00
Nach oben
nerd Private Nachricht senden
Neues Thema eröffnen   Neue Antwort erstellen    ABAKUS Foren-Übersicht -> Spiders / Robots Themen

Seite 1 von 1
 





Ähnliche Beiträge
Thema Online Marketing Forum Antworten
"[...]Methoden von Social Bots und Fake-Accounts[...]&q "[...]Methoden von Social Bots u... hanneswobus Social Media & Content-Marketing 2 14.09.2017, 11:43 "[...]Methoden von Social Bots und Fake-Accounts[...]&q
google bots für Filter sperren, aber wie? google bots für Filter sperren, aber ... Chriscrossman Google Forum 2 14.02.2017, 11:14 google bots für Filter sperren, aber wie?
Bestimmte Bots per htacess aussperren Bestimmte Bots per htacess aussperren Prian Ich hab' da mal 'ne Frage 1 19.04.2015, 11:45 Bestimmte Bots per htacess aussperren
Ich werde von Robot-Bots blockiert - Hilfe ! Ich werde von Robot-Bots blockiert - ... torstenv Spiders / Robots Themen 7 16.03.2015, 12:51 Ich werde von Robot-Bots blockiert - Hilfe !
"Das Internet ist in der Hand bösartiger Bots" "Das Internet ist in der Hand bö... GBK667 Infos, News & SEO Gerüchte 5 30.12.2014, 12:31 "Das Internet ist in der Hand bösartiger Bots"
Bots aus dem Analytics Report ausschließen Bots aus dem Analytics Report ausschl... mwitte Web Analytics & Controlling 1 31.07.2014, 11:41 Bots aus dem Analytics Report ausschließen
Werden nofollow Links von Crawler und Bots "verfolgt&qu Werden nofollow Links von Crawler und... swiat Google Forum 9 21.05.2014, 16:28 Werden nofollow Links von Crawler und Bots "verfolgt&qu


SEO Wetter von www.seowetter.de

Startseite der SEO-Agentur ABAKUS | Social Media & SEO Blog | SEO Online Tools | Suchmaschinenmarketing Angebot | Reif für die Klinik?

Impressum | Datenschutz

Linkaufrufe von Bots begrenzen Linkaufrufe von Bots begrenzen - Österreich Linkaufrufe von Bots begrenzen - Schweiz

Dieses SEO Forum läuft unter phpBB.


Sie lesen gerade: Linkaufrufe von Bots begrenzen