Hallo,
es geht um ein kleines Problem, dass aufgetaucht ist. Im Folgenden wird versucht, einen einfachen http POST req abzuschicken, und aus der res das cookie, für die weitere, automatisierte Arbeit auf den Seiten hinter dem Anmeldeformular, zu extrahieren.
1
2
3
4
5
6
7
8
9
10
11
12
13
my $ua = new LWP::UserAgent;
$ua->agent("MudGuard/1.0");
$ua->timeout(600);
my $content = "user_name=user&user_password=pass";
my $contlen = length($content);
my $cookie_jar = HTTP::Cookies->new();
my $req = HTTP::Request->new("POST", "http://domain.de/login");
$req->header("content-length" => $contlen);
$req->header("content-type" => "application/x-www-form-urlencoded");
$req->header("content-encoding" => "iso-8859-1");
$req->content($content);
my $res = $ua->request($req);
$cookie_jar->extract_cookies($res);
Hier ist dann ein Beispiel für den Aufruf einer Seite "hinter" dem Anmeldeformular. Hier soll einfach nur gezeigt werden wie die Verwendung von add_cookie_header($req) stattfindet, um eine Mögliche Falschverwendung auszuschließen.
$req = HTTP::Request->new("GET", "http://domain.de/SeiteHinterDemLogin");
$req->header("content-type" => "multipart/form-data");
$req->header("content-encoding" => "iso-8859-1");
$cookie_jar->add_cookie_header($req);
Wenn nun aber SeiteHinterDemLogin aufgerufen wird, erscheint nur eine Fehlermeldung. So weit bekannt, sind die Seiten für das Loginformular, und alle weiteren Seiten mit Ajax Technologie erstellt worden. Die Frage taucht nun auf, ob es somit überhaupt möglich ist, einen Login über
HTTP::Cookies umsetzen zu können, oder ob die seiten vielleicht für derart Loginversuche mittels Ajax, "gesperrt" sein könnten. Auf anderen Seiten funktioniert die beschriebene Prozedur zum Einloggen sonst ganz gut.
Des weiteren scheint mir der URL:
http://domain.de/login, also ohne Dateiendung, ebenfalls eine Möglichkeit der Behinderung, durch Einloggen über
HTTP::Cookies sein zu können. Auch hier die Frage: Ist das möglich?
Schlussendlich wird als Pfad im Action Attribut, des Login Formulars lediglich die Angabe: /login gemacht. Dort befindet sich kein sollständiger URL, und ebenfalls auch keine Dateiendung, so wie man es von Login Formularen gewöhnt ist, auf denen
HTTP::Cookies sicher funktioniert hätte. Ebenfalls die Frage: Ob hier eine Behinderung möglich ist.
Gruß, IceRage