Quelltext Webseite schlägt noch immer fehl

Diskutiere Quelltext Webseite schlägt noch immer fehl im Netzwerkprogrammierung Bereich.
mihe7

mihe7

Nehmen wir mal an, wir fänden unter www.meinewebseite.de/login.html folgenden Code

HTML:
<form method="POST" action="login.php">
  <input type="text" name="benutzer" />
  <input type="password" name="vorbeiwort" />
  <button type="submit">OK</button>
</form>
Dann würde beim Klick auf den Button ein POST-Request www.meinewebseite.de/login.php ausgeführt. Der Body wäre dann "benutzer=xxx&vorbeiwort=xxx".
 
C

cheat.008

1. Heißen die Form-Elemente auf der Webseite wirklich param1 und param2?
2. Du musst den body schon über den OutputStream der connection rausschreiben.

Ah, vergessen. Nein die Namen sind "login" und "password".
Danke!
Leider kenne ich mich mit HTML/PHP nicht sonderlich gut aus.

Code:
public class QuelltextReader
{
   public static void main(String[] args) throws Exception
   {
       String body = "login=" + URLEncoder.encode("<meinUN>", "UTF-8") + "&" + "password="
               + URLEncoder.encode("<meinPW>", "UTF-8");

       CookieHandler.setDefault(new CookieManager());
       URL url = new URL("<website>");
       HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
       connection.setRequestMethod("POST");
       connection.setDoInput(true);
       connection.setDoOutput(true);
       connection.setUseCaches(false);
       connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
       connection.setRequestProperty("Content-Length", String.valueOf(body.length()));
       connection.addRequestProperty("User-Agent",
               "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0");
       connection.connect();

       OutputStreamWriter osw = new OutputStreamWriter( connection.getOutputStream() );
       osw.write(body);
       osw.flush();
     
       BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

       String input;
       while ((input = in.readLine()) != null)
           System.out.println(input);
       in.close();
   }
}
 
C

cheat.008

Nehmen wir mal an, wir fänden unter www.meinewebseite.de/login.html folgenden Code

HTML:
<form method="POST" action="login.php">
  <input type="text" name="benutzer" />
  <input type="password" name="vorbeiwort" />
  <button type="submit">OK</button>
</form>
Dann würde beim Klick auf den Button ein POST-Request www.meinewebseite.de/login.php ausgeführt. Der Body wäre dann "benutzer=xxx&vorbeiwort=xxx".
Durch den OutputStream sende ich im "body" die Logininformationen.
Impliziert das dann sozusagen das "Betätigen" des Buttons?
 
mihe7

mihe7

Wenn Du das HTML von vorhin nimmst, dann sendet der Browser beim Betätigen des Buttons eben einen solchen Request.

Funktioniert es jetzt? Wenn nicht, wie sieht die Antwort bzw. wie sehen die Response-Header aus?
 
C

cheat.008

Wenn Du das HTML von vorhin nimmst, dann sendet der Browser beim Betätigen des Buttons eben einen solchen Request.
Also es gibt ja tatsächlich auf der Seite einen Anmelde-Button.
Verstehe ich das richtig, dass ich durch den "body"-String bzw. POST-Request
aktuell nur die Felder "login" und "password" fülle, aber das Betätigen des genannten Buttons noch fehlt?
Falls ja, müsste ich das ja noch in meinen Code implementieren...

Der Button:
Code:
<input class="button primary" value="Anmelden" data-loginphrase="Anmelden" data-signupphrase="Registrieren" tabindex="4" type="submit">
Funktioniert es jetzt? Wenn nicht, wie sieht die Antwort bzw. wie sehen die Response-Header aus?
Leider nein.
Kannst du damit etwas anfangen?

Code:
Printing Response Header...

Key : Transfer-Encoding ,Value : [chunked]
Key : null ,Value : [HTTP/1.1 403 Forbidden]
Key : CF-RAY ,Value : [42bcb0a3be939720-FRA]
Key : Server ,Value : [cloudflare]
Key : Connection ,Value : [keep-alive]
Key : Last-Modified ,Value : [Sat, 16 Jun 2018 10:45:59 GMT]
Key : Date ,Value : [Sat, 16 Jun 2018 10:45:59 GMT]
Key : X-Frame-Options ,Value : [SAMEORIGIN]
Key : X-Xss-Protection ,Value : [1]
Key : Vary ,Value : [Accept-Encoding]
Key : Set-Cookie ,Value : [, ]
Key : Expires ,Value : [Thu, 19 Nov 1981 08:52:00 GMT]
Key : Expect-CT ,Value : [max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"]
Key : Cache-control ,Value : [private, max-age=0]
Key : Content-Type ,Value : [text/html; charset=UTF-8]
 

Anhänge

Zuletzt bearbeitet:
mihe7

mihe7

1. Du sendest den Request schon gegen die URL, die sich aus dem action-Attribut der Form ergibt?
2. Falls ja: es kann auch sein, dass die Seite die Anmeldung via JavaScript realisiert und es z. B. gar keine serverseitigen Sessions gibt (dann existiert die Session nur auf dem Client und die Authorisierung erfolgt durch ein Token, z. B. via JWT)
3. Ohne Infos zur Seite ist das ein reines Rätselraten
 
C

cheat.008

1. Du sendest den Request schon gegen die URL, die sich aus dem action-Attribut der Form ergibt?
Ja

2. Falls ja: es kann auch sein, dass die Seite die Anmeldung via JavaScript realisiert und es z. B. gar keine serverseitigen Sessions gibt (dann existiert die Session nur auf dem Client und die Authorisierung erfolgt durch ein Token, z. B. via JWT)
3. Ohne Infos zur Seite ist das ein reines Rätselraten
Ja du hast schon recht, hatte mir das alles einfacher vorgestellt und für weiteres reichen meine HTML Kenntnisse leider nicht aus, daher werde ich mir was anderes überlegen müssen.
Danke für deine Hilfe bis hierher!
 
mihe7

mihe7

Das ist alles kein Hexenwerk, Du musst dir einfach ansehen, wie der Login realisiert wurde.

Du kannst z. B. in Firefox mit der "Netzwerkanalyse" (Strg+Shift+Q bzw. Strg+Shift+E oder Menü -> Web-Entwickler -> Netzwerkanalyse) die Requests genau nachvollziehen. Gleiches funktioniert in Chrome (Strg+Shift+J, Network-Tab).

Du kannst im Browser auch mal testen, ob der Login ohne JavaScript funktioniert (Seite aufrufen, JavaScript deaktivieren, anmelden). Wenn ja, ist der bisherige Ansatz schon der richtige.
 
mihe7

mihe7

Abgesehen davon: nach einem halben Jahr wird er den Login hinbekommen haben.
 
Thema: 

Quelltext Webseite schlägt noch immer fehl

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben