Seite 1 von 1

HTTP request (POST)

Verfasst: Freitag 12. Juli 2019, 07:51
von Kirikkayis
Hey,

ich versuche mich seit gestern Vormittag per POST auf einer Seite anzumelden.
Hierfür rufe ich die Seite mit Google Chrome auf (rechts Klick --> Untersuchen --> Network, und dann nach meinem "POST" gesucht)
Nun scrolle ich runter bis ich bei "Form Data" bin.

Hier habe ich folgende Daten:

Code: Alles auswählen

LOGIN_TYPE:
SAP-CLIENT: 800
SAP-USER: XYZ
SAP-PASSWORD: KEINPASSWORT
SAP-LANGUAGE: DE
project: FIRMA
login_type:
fehler_text:
fehler_type:
controller_id:
button_ok:
param1: XY-99
sap-appcontext: hier steht ein String gemischt aus Zahlen und Buchstaben
sap-usercontext: sap-client=800
USW
USW
Python code:

Code: Alles auswählen

import requests

login_data = {
    'SAP-USER': '<username>',
    'SAP-PASSWORD': '<password>'
}

with requests.Session() as s:
    url = 'https://www.XYZ.com/'
    x = s.get(url)
    r = s.post(url, data=login_data)
    print(r.content)
    print(r.status_code)
Ich erhalte IMMER eine Antwort (keine Fehlermeldung) und mein status_code = "200 OK"
Nun habe ich mein Code wie folgt Ergänzt:

Code: Alles auswählen

file = open("text.txt", "w")
file.write(r.text)
file.close()
Nachdem ich mich auf der Seite erfolgreich im Browser anmeldet habe, habe ich den HTML-Code mit meiner File verglichen:
1. Im Browser habe ich NACHDEM LOGIN kein header --> in meiner .txt habe ich den HEADER des Logins
2. Im Browser habe ich im HTML-Code zwei Buttons --> in meiner .txt habe ich die Buttons nicht

Das sieht danach aus das ich mich nicht erfolgreich anmelde.

Die Frage nun ist muss ich KOMPLETT ALLES was in "Form Data" steht übergeben? Oder reichen hier wirklich nur SAP-USER & SAP-PASSWORD? (Ich gebe nichts anderes ein außer Username und password)

Bzw. habe ich iwo einen Fehler ?

Re: HTTP request (POST)

Verfasst: Freitag 12. Juli 2019, 08:45
von noisefloor
Hallo,

es wäre ungewöhnlich / üblich, wenn nicht noch Schutzmechnismen eingebaut wäre, z.B. ein Token gegen CSRF. Das musst du dann auch übermitteln.

Sind das wirklich _alle_ POST-Daten oder fehlt das was? Wofür steht das USW in deiner Liste?

Gruß, noisefloor

Re: HTTP request (POST)

Verfasst: Freitag 12. Juli 2019, 08:55
von Kirikkayis
Hey @noisefloor, danke für die Antwort.
Folgend ALLE Daten die ich von Google-Chrome (POST-Request) unter Form-Data sehe:

Code: Alles auswählen

LOGIN_TYPE: 
SAP-CLIENT: 100
SAP-USER: MEIN BENUTZERNAME
SAP-PASSWORD: MEIN PASSWORT
SAP-LANGUAGE: DE
project: PROJEKTNAME
login_type: 
param1: XA-12
fehler_text: 
fehler_typ: 
controller_id: 
sap-appcontext: xqwe2FwLXNlc3NJHASD12JASDM2FBTk9OJTNhZGUwMXNlcnBkMTFfRDExXzAwJTNhWlhCOExjNGJzR3VvSmxpcVlwZm8tNTYxSjRfMFlyN1Rhck9KASDKJASD=
sap-usercontext: sap-client=100
xbrowsercmd: XB_INFO
FEHLER_TEXT: 
FEHLER_TYP: 
CONTROLLER_ID:
Muss ich das alles mit übergeben?
Bzw. was passiert mit den Parametern wo dahinter nichts steht?

Re: HTTP request (POST)

Verfasst: Samstag 13. Juli 2019, 10:53
von noisefloor
Hallo,
Muss ich das alles mit übergeben?
Da keiner den serverseitigen Code kennt kann man das nicht beantworten. Davon ausgehend, dass die POST-Daten nicht aus Spaß an der Freude da sind, solltest du alle übertragen und nicht nur eine Teil.

Gruß, noisefloor