Bot versagt

Tommy57

Erfahrenes Mitglied
Hi Leute,

weiß echt nicht mehr weiter. Ich soll für einen Kunden einen Bot schreiben, der eine bestimmte Website auslesen soll. So, das Problem ist, dass die Seite meinen Bot erkennt.

Meine Frage ist, woran kann die Seite noch erkennen, dass es sich um einen Bot handelt? Ich habe bereits den User-Agent angepasst und die Cookies rüberkopiert. Hat jemand eine Idee, was man noch machen kann?

Außerdem wollte ich fragen, ob jemand weiß, ob das strafbar ist. Also die Informationen auf der Seite sind ohne Login erreichbar und auch bei der Captcha Abfrage steht nix davon, dass ich mich strafbar mache. Hingegen in den AGBs steht ein Zweizeiler in Englisch, da es sich um eine amerikanische Website handelt.

Gruß, Tommy
 
Hi

das Urheberrecht macht auch vor Webseiten nicht halt.
Also besser vorher fragen, und am besten schriftlich.

Zum Bot:
Zuerst abgleichen, welche Unterschiede die Anfrage noch zum Browser hat
und da anpassen versuchen.

Sonst liegts vllt. an zu vielen bzw. zu schnellen Anfragen von der selben IP.

Nimmst du auch Cookieänderungen an?
Wenn immer das Gleiche geschickt wird passts der Seite vllt. auch nicht.
 
Hi, also zu viele Aufrufe nicht, da er den Bot sofort erkennt.

JavaScript werde ich beim nächsten Versuch mal testen.

Cookie Änderung könnte es sein. Die Seite sendet mir jedes Mal den gleichen Cookie mit gleichem Inhalt, aber vllt das Ablaufdatum ändert sich jedes Mal, das müsste ich dann mit übernehmen.

Kann mir jemand sagen, ob ich den Cookie so richtig setze, wenn ich den bei fsockopen mit senden will?

Code:
Cookie:  c1=12; path=/; domain=.mustermann.de; c2=3; path=/; domain=.mustermann.de; c3=; path=/; domain=.mustermann.de;

Gibt es eine einfache Möglichkeit, die Cookies zu akzeptieren und zurück zu senden, oder muss ich den String im Header raussuchen?


Danke schon mal für eure Hilfe. Ich teste es später noch mal aus.


EDIT:
Habe gerade gelesen, dass das Ablaufdatum nicht mitgesendet wird. Daran kann es also nicht liegen. Muss ich beim Bot einen speziellen Parameter setzen, damit der Server glaubt, dass ich Cookies annehme?
 
Zuletzt bearbeitet:
Warum probierst du nicht cURL?
Da musst du dich um das mit den Cooies nicht kümmern, da gibts extra optionen für.
 
Hi alxy,

ich hatte schon einige Varianten ausprobiert, aber cURL kannte ich bisher noch nicht. Ich werde mir das gleich mal anschauen. Mal sehen, ob ich damit besser voran komme.

Danke auf jeden Fall.
 
So, ich habe mir das mit cURL mal angeschaut. Das sieht sehr interessant aus.

Die Website sagt jetzt immer, ich solle Cookies aktivieren. Wie kann ich denn jetzt bei cURL sagen, dass er mir mehrere Seiten nacheinander aufrufen soll und die Cookies der Seite akzeptieren und wieder zurück senden soll. Ich hatte folgenden Ansatz gefunden, aber das scheint nicht zu funktionieren.

PHP:
$sessionCookie = session_name() . '=' . $_COOKIE[session_name()]; 
curl_setopt($ch,    CURLOPT_COOKIE, $sessionCookie );

Damit in der Variablen $sessionCookie überhaupt ein Wert steht, muss ich session_start(); vorher ausführen, aber ich denke, dass sind meine Session Werte und nicht die vom Fremdserver.

Ich denke, ich habe da irgend etwas falsch verstanden.
 
Danke für den Link. cURL ist echt ne coole Sache. Vielen Dank.


@einfach nur crack
Du hattest vollkommen recht. Ein JavaScript Snippet macht es mir schwer. Die Cookies konnte ich ja sehr gut bisher einfach vom Browser kopieren; bei anderen Bots hat das in der Regel schon gereicht. Hier hat er den Bot scheinbar wegen dem JavaScript Snippet erkennen können.

Ich versuche den Code gerade zu entschlüsseln. Ich erkenne auf jeden Fall die Erstellung eines Cookies, eines Formulars und ein Redirect.

Mal schauen, wo es mich hinführt. Vermutlich gibt es da keine Tricks, den JavaScript Code ausführen zu lassen, oder?



EDIT:
So, ich habe mich jetzt durch den JavaScript Code durchgearbeitet und es ist echt übel. Die generieren mittels eines langen Strings HTML-Objekte, die irgendwelche Buchstaben beinhalten. Zusätzlich werden zwei Funktionen, die zufällige Algorithmen haben, erstellt, die jeweils einen Buchstaben aus dem HTML-Objekt rausnehmen. Diese zwei Buchstaben werden dann in den Cookie geschrieben. Eine der verschiedenen Funktionen löste sogar einen onclick-Event aus, um den Buchstaben zu ermitteln.

Also wenn es immer die zwei gleichen Funktionen wären, könnte ich dafür noch mal was coden, aber so geht das nicht. Da scheint ja n Pool an Funktionen hinter zu liegen, wo zufällig 2 ausgewählt werden.

Kennt jemand eine Möglichkeit JavaScript Snippets mit PHP zu überlisten? Ich kann doch bestimmt im PHP ermitteln, ob der Cookie existiert, wenn nicht, soll er die Seite ganz normal als HTML ausgeben, dann wird der Cookie erstellt und es findet ein Redirect statt. Dann müsste ich den Cookie haben und könnte ihn an den Fremserver weitergeben?! Ich werd das mal testen
 
Zuletzt bearbeitet:
Zurück