Zeichen einsetzen in eine Webpage
-
tja, klingt natürlich logisch und das war auch mein erster Gedankengang, aber kein Plan wie ich herausfinde was genau der alles schickt (also mein Browser) wenn ich auf senden geklickt habe. Gibts da tools um den Datenfluss praktisch abzufangen?
-
Ja.
-
nennt sich netzwerksniffer. wireshark ist ganz praktisch
-
helferlein schrieb:
nennt sich netzwerksniffer. wireshark ist ganz praktisch
nur wenn man aus den unzaehligen Daten, die dort erscheinen, schlau wird
-
und bei dem Tool kann ich einschalten, dass ich nur die Daten sehen will, die mir Firefox zB an den Server sendet?
-
so hab das Programm jetzt mal ausprobiert und habe als Filter mal eine IP eingegeben wo man Benutzername und Passwort eingeben muss und gescannt. Und siehe da. In einer Zeile wo unter INFO u.a. j_security_check HTTP/1.1 steht, da finde ich meinen eingetragenen Username und mein PW wieder. Schon etwas erschreckend
Unten im Kontrollfenster erscheint dann der String unter "Line-based text data: blblabla": j_username=xxxx&j_password=xxxxxxx.Heißt das ich muss diesen String einfach nur an die IP Adresse senden und dann loggt mich mein Programm ein?
Oder steckt mehr dahinter?
-
ist noch aktuell.
Benötige ich dafür eine weitere API?
-
nein. Du könntest dir durchlesen wie http funktioniert und den entsprechenden vollständigen request an die Seite schicken lassen. Also genau das schicken was dein Browser sonst schicken würde wenn du das händisch machst.
-
rofl
wieso sollte man das in C++ machen wollen? für sowas gibts doch PHP und konsorten.
wenns dann doch in C++ sein MUSS wäre vielleicht ne etwas "höhere angesiedelte" API als sockets nützlich. sowas wie WinHttp oder neon.
-
So. Hab es jetzt mit der libcurl versucht, was auch ganz gut funktioniert.
Allerdings weiß ich bis jetzt nicht wie ich ein falsches passwort oder username abfangen soll. Werde aus der Doku von libcurl nicht wirklich schlau....
Ich möchte, falls das PW oder Username falsch sind eine Meldung ausgeben. Dazu wollte ich prüfen ob ich von der Seite etwas zurückbekomme, zb den String "falsch". keine Ahnung wie Daten zu empfangen sind. Den rest hat man ja ganz gut auf der Doku rausfinden können. Aber ich werd echt nicht schlau draus.
Mein bisheriger Code:#include <iostream.h> #include <curl/curl.h> CURL *easyhandle; //global. Speicher wird gleich vor Programmstart festgelegt und nicht zur Runtime. size_t getData=0; size_t find=0; int main(void) { //handle initialisieren easyhandle=curl_easy_init(); if(!easyhandle) { cout<<"curl handle not started! ERROR!\n"; } else cout<<"curl handle started!\n"; //definieren curl_easy_setopt(easyhandle, CURLOPT_POSTFIELDS, "j_username=xxx&j_password=xxxx"); curl_easy_setopt(easyhandle, CURLOPT_URL, "http://bla.de/j_security_check"); find=curl_easy_setopt(easyhandle, CURLOPT_READFUNCTION, CURLOPT_READDATA); //abschicken if(curl_easy_perform(easyhandle)!=0) { cout<<"no connection!\n"; } else { if(find!=0) { cout<<"wrong Username or PW!\n"; } else cout<<"Username and PW right\n"; cout<<"connection established!\n"; } return 1; }