"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
      appTaurus
      Teilnehmer

      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">
      <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
      Verwalter

      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
      appTaurus
      Teilnehmer

      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.