"POST" auf Webseite die JavaScript zur Anmeldung nutzt

Startseite Foren Deutsches LiveCode-Forum "POST" auf Webseite die JavaScript zur Anmeldung nutzt

Ansicht von 6 Antwort-Themen
  • Autor
    Beiträge
    • #5370
      Anonym

        Hallo liebe Gemeinschaft,

        ist es jemandem schon gelungen einen Benutzernamen und ein Passwort auf eine Seite zu übertragen die JavaScript nutzt um sich zu authentifizieren?

        Alle meine Versuche mit GET und POST sind fehlgeschlagen. Gibt es die Möglichkeit überhaupt aus LiveCode heraus dem JavaScript auf einer Internetseite Logindaten mitzugeben?

        Hier mal ein Auszug aus dem HTML-Code um die Seite um die es geht:

        <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt;
        <html>
        <head>
        <title>NetEco 1000S</title>

        [ … ]

        <div id=”loginDiv” style=”position:relative;left:0px;top:160px;width:100%;height:120px;”>
        <form method=”post” action=”” name=”loginForm” id=”loginForm”>
        <table border=0 bgcolor=”” width=”100%”>
        <tr>
        <td style=”width:45%;height:34px;text-align:right;padding-top: 0px; padding-bottom: 0px;”>

        <span class=”login_form_txt” style=”font-size:12pt;font-family:Microsoft Yahei, Georgia, serif;”>Benutzername</span></td>
        <td style=”width:1%;padding-top: 0px; padding-bottom: 0px;”></td>
        <td style=”text-align:left;width:13%;padding-top: 0px; padding-bottom: 0px;”><input type=”text” placeholder=Konto/E-Mail tabindex=”1″ style=” height:20px;width: 130px;” maxlength=”96″ onkeypress=”if(event.keyCode == 32 || event.which == 32){return false}” onkeyup=”checkUserNameLength()” id=”userName” name=”userName” onblur=””/></td>
        <td width=”42%” align=”left” style=”padding-top: 0px; padding-bottom: 0px;”><span id=”loginErrorMsg_login” class=”icon_error” style=”position:relative;top:0px;left:0px;width:100%;text-align:left;font-size:12px;font-family: Microsoft Yahei, Georgia, serif;color: red;padding-top: 0px; padding-bottom: 0px;”></span></td>
        </tr>

        <tr>
        <td style=”text-align:right;padding-top: 0px; padding-bottom: 0px;height: 34px”>
        <!– password –>
        <span class=”” style=”font-size:12pt;font-family:Microsoft Yahei, Georgia, serif;”>Passwort</span>
        </td>
        <td></td>
        <td style=”text-align:left;padding-top: 0px; padding-bottom: 0px;”>
        <input type=”password” value=”” tabindex=”2″ autocomplete=”off” style=” height:20px;width: 130px;” maxlength=”32″ id=”password” name=”password” onkeypress=”” onkeydown=”if(event.keyCode==13){$(‘#login’).click();}” />
        </td>
        <td>

        [ … ]

        </script>
        </body>
        </html>

        Meine “Codeversuche”

        on postURL
           put userName="********" & password="*******" into tArgList
           post tArgList to URL "https://52.**.***.5*:8**3"
        end postURL
        
        oder
        
        on sendData
        put "********" into userName
        put "*********" into passwordd
        put "https://" & userName & ":" & URLEncode(passwordd) \
              & "@https://52.**.***.5*:8**3" into fileURLToGet
        get URL fileURLToGet
        put it into field "field"
        end sendData

        Natürlich dankbar für alle Tips

        Viele Grüße

        Kosta

      • #5416
        bodopio
        Teilnehmer

          Hallo Kosta,

          von meinem Verständnis her kann das nicht gehen:

          Javascript wird vom Browser über den Javascript Interpreter intern verarbeitet. Das Ergebnis wird nach Verarbeitung an den Server geschickt.
          Ich gehe mal davon aus, daß Livecode keinen Javscript interpreter hat? und es deshalb nicht funktioniert.

          Trotzdem viel Glück

          Grüße Bodo

        • #5418
          gfz
          Teilnehmer

            Hallo Kosta, ich habe damit noch keine Versuche gemacht oder Erfahrungen sammeln können. Aber zu diesem Thema fand ich hier Tipps: http://livecode.byu.edu/internet/postMethodSteps.php
            Hoffe das hilft dir weiter.
            LG
            Georg

          • #5420
            hauke
            Administrator

              Hallo appTaurus,

              ich habe vor einem Jahr mal an einem Projekt gearbeitet, das sich auf eine Webseite eingeloggt hat, die massiv mit JavaScript abgesichert war, so dass man mit simplem POST nicht weiterkam.

              Man kann mit LiveCode JavaScript-Kommandos direkt an das Browser-Widget übertragen (das auch unsichtbar sein kann). Wenn man dann also die IDs der Login und Passwort-Felder kennt sowie die des Absende-Buttons, kann man sich theoretisch auch über LiveCode einloggen. Viel Herumprobieren ist definitiv nötig, aber am Ende ist es mir gelungen.

              Beispiel:

                 do "document.getElementById('username').value = 'meinName';" in widget "Browser"
                 do "document.getElementById('password').value = 'meingeheimespasswort';" in widget "Browser"
                 do "document.getElementById('login_button').click();" in widget "Browser"

              Vielleicht hilft Dir das weiter.

              Grüße

              Hauke

            • #5422
              bodopio
              Teilnehmer

                Hallo,

                das ist ja phänomenal mit do “document.getElementById…

                Schau mal den Source Code an.

                In der https://52.58.159.100:8443/security/js/login.js?1524336404356 werden die Eingabedaten verarbeitet.

                Hier solltest Du auch das Zielscript finden, an das gesendet wird. Vielleicht kannst Du es dann direkt ansprechen. In der function comitLogin(userName, password) { wird über Ajax die url beschrieben.

                Vielleicht hilft das als Ansatz – ich bin jetzt nicht tiefer eingestiegen.

                Viel Glück

                Bodo

              • #5424
                Anonym

                  Phänomenal ist gar kein Ausdruck!!!

                  Das hat bestens funktioniert Hauke! Grandios!

                  Musste nur noch die user_agent Kennung des Browserwidgets ändern, weil die Seite nur IE 11 akzeptiert (mit sovielen Augen kann ich gar nicht rollen) und es funktioniert!

                  Ich bin absolut begeistert! Und meine Kopfschmerzen schwinden dahin! 🙂

                  Vielen lieben Dank Hauke! Und natürlich allen anderen die sich an der Diskussion beteiligen 🙂

                  Kosta

                • #6080
                  VolkerT
                  Teilnehmer

                    Ich bin sehr begeistert von der Möglichkeit Anmeldedaten zu übergeben. Habe es mit dem o.g. Beispiel
                    do “document.getElementById(‘username’).value = ‘xxxxx’;” in widget “Browser”
                    versucht.
                    Bekomme allerdings immer folgende Fehlermeldung:
                    executing at 9:10:25 PM
                    LCB Error Value is not of correct type for assignment to variable – expected type <type: livecode.lang.string> for assigning to variable tResult in com.livecode.widget.browser.browserEvaluateJavaScript
                    Object Browser
                    LCB File browser.lcb
                    LCB Line 771

                    Woran kann es liegen? Muss ich noch etwas beachten beim Übergeben der Anmeldedaten?

                    Viele Grüße
                    Volker

                Ansicht von 6 Antwort-Themen
                • Du musst angemeldet sein, um auf dieses Thema antworten zu können.