Ergebnis 1 bis 5 von 5
  1. #1
    Anfänger
    Registriert seit
    20.03.2008
    Beiträge
    16

    Standard Trick: Variablenaustausch zwischen c++ und php-Website

    Ich hatte öfters das Problem, als ich an einer komplett sicheren Passwortabfrage gebastelt hatte, dass ich keine Infos von einem c Programm zu einer Website, auf der Php installiert ist, verschicken und verarbeiten konnte.
    Also ich mir mal Php etwas nächer angeschaut habe, und gesehen habe, was alles für Server-Variablen(z.B. Ip-Adresse) übertragen werden, ist mir eine Variable besonders aufgefallen:
    $_SERVER["HTTP_USER_AGENT"]

    Normalerweise zeigt die Variable an, mit welchem Explorer(z.B. Mozilla Firefox) man die Seite anschaut. So habe ich mir gedacht, das muss ja irgendwo festgelegt werden, was in der Variablen steht. Und tatsächlich, in der wininet.h(wichtig: wininet muss noch gelinkt werden) gab es die Funktion:
    InternetOpen()
    in der man seinen Namen, mit dem man sich dann im Internet zum erkennen gibt, angeben. Dies war die gesuchte Variable.

    Also habe ich ein System entwickelt, welches einen aneinandergereihten Variablenstring anstelle von dem Namen benutzt.
    z.B.

    VariablenName1VariablenInhalt1VariablenName2Variab lenInhalt2 [...]

    Dieser String wird dann bei der Verbindung mit der Website mit der $_SERVER["HTTP_USER_AGENT"] -Variablen in Php abgefragt und wieder aufgetrennt.
    Anschließend kann man dann die empfangenen Variablen verarbeiten und wenn man möchte eine Antwort zurückschicken.

    Theoretisch: ein echo Befehl, der versteckt in den Quellcode die Antwort schreibt und die dann vom c Programm ausgelesen wird.

    Und so funktionierts in c :

    # rtCPP.h einbinden und wininet linken !!!

    Code:
    rtInet blabla;
    blabla.PutVariable("Varname1","Varinhalt1");
    blabla.PutVariable("Varname2","Varinhalt2");
    [...]
    blabla.SendToPhpPage("http://www.testseite.de/index.php");
    blabla.ReceiveVariables();
    cout << blabla.GetVariable("VarnamePHP1") << endl;
    cout << blabla.GetVariable("VarnamePHP2") << endl;
    [...]
    blabla.Close();
    Und so sieht das dann in PHP aus:



    # rtPHP.fct einbinden !!
    Code:
    rtInet blabla;
    blabla.ReceiveVariables();
    echo blabla.GetVariable("Varname1");
    echo blabla.GetVariable("Varname2");
    [...]
    blabla.PutVariable("VarnamePHP1", "VarinhaltPHP1");
    blabla.PutVariable("VarnamePHP2", "VarinhaltPHP2");
    [...]
    blabla.SendVariables();
    Hier eine Skizze zur Verdeutlichung des Vorgangs:


    Und hier noch die Dateien "rtCPP.h" und "rtPHP.fct":
    http://www.file-upload.net/download-...eader.zip.html

  2. #2
    Anfänger
    Registriert seit
    10.09.2008
    Beiträge
    21

    Standard

    schon mal was von $_Post und $_GET gehört?
    so kann ja jeder der verbindung logt deine "passwörter usw" sehen
    [B] UL.TO 1 Monat Premi

  3. #3
    Stanley Jobson Avatar von GregorSamsa
    Registriert seit
    23.08.2008
    Beiträge
    729

    Standard

    Willst du ne ehrliche Meinung dazu?
    Sinnlos.

    Es gibt POST und GET, das sind die einzig sinnvollen Übertragungswege - denn dort kannst du auch mehr als n paar Bytes übertragen. Oder willst du ne ganze Datei im User-Agent "verstecken" für den Upload? Glaub mir, das bringt es nicht.
    Sicher ist sowas sowieso nicht

    Beschäftige dich mal näher mit dem HTTP-Protokoll, dann wirst du verstehen was ich meine!

  4. #4
    Das Leben ist der Lehrer Avatar von DoS
    Registriert seit
    18.08.2008
    Beiträge
    528

    Standard

    Schöne Idee. Finde es immer gut, wenn Leute sich selbst etwas überlegen.

    Allgemein würde ich allerdings andere Methoden vorziehen, die GregorSama schon ansprach. Das ist professioneller und seriöser.

    Trotzdem: Tolle Idee.

    Gruß -DoS
    Legende: "Gruß" = kaum Zeit, "MfG." = durchschnittlich viel Zeit und "Mit freundlichen Grüßen" = viel Zeit
    gehabt beim Posten.


    Folgende Personen genießen meine Hochschätzung: BlackBerry, EBFE, DizzY_D, OpCodez, l0dsb und H4x0r007.

  5. #5
    Anfänger
    Registriert seit
    20.03.2008
    Beiträge
    16

    Standard

    Naja ich wollte damit jetzt nicht unbedingt eine Passwortabfrage aufzeigen, was ich absolute sicher mit ComputerID usw. schon erstellt habe, sondern eine Möglichkeit darstellen, wie man mit einem c++-Programm mit einer Webseite kommunizieren kann.
    Dieser Code stammte aus einer Zeit, wo ich noch nicht so fitt war in Punkte Programmieren.
    Das mit $_Post und $_Get habe ich erst später entdeckt

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •