HTTP request (POST)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kirikkayis
User
Beiträge: 85
Registriert: Freitag 18. Januar 2019, 08:02

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 ?
Benutzeravatar
noisefloor
User
Beiträge: 4191
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Kirikkayis
User
Beiträge: 85
Registriert: Freitag 18. Januar 2019, 08:02

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?
Benutzeravatar
noisefloor
User
Beiträge: 4191
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Antworten