Ich frage mich gerade ob ich in PyLucid anfragen sollte, wie groß die geschickten POST/GET Daten sind... Von wegen überlauf und so...
Gibt es da irgendwelche Sicherheitsbedenken???
Irgendwo hab ich den Tipp gefunden, das man os.environ["CONTENT_LENGTH"] checken sollte... Aber wiegroß dürfen die Daten werden?
CGI Post-/Getdaten und überlauf...
- jens
- Moderator
- Beiträge: 8458
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
CGI Post-/Getdaten und überlauf...
CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
- jens
- Moderator
- Beiträge: 8458
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Baue mir gerade mit socket einen POST Request zusammen in dem ich mal einfach ein haufen an Daten schicken kann, um zu sehen, wie der Server reagiert...
Gibt es dafür evtl. schon was fertiges?
Gibt es dafür evtl. schon was fertiges?
CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
- jens
- Moderator
- Beiträge: 8458
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ist dieser Thread im allgemeinen Forum kaputt/gehtwieder untergegangen oder hat dazu keiner was zu sagen?
CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Hmm...
An welcher Stelle hast du denn Angst vor einem Überlauf?
Ich meine, du codest ja nicht in C ,-)
Solange der Python-Interpreter nicht buggy ist, können zu viele Daten IMHO höchstens bewirken, dass der Prozess der die request behandelt vom kernel abgeschossen werden muss, weil er den ganzen RAM verbaucht, dann kann halt derjenige, der meint dir so viele Dtaen schicken zu müssen nicht weiterarbeiten.
Hat er dann ja auch nicht verdient ,-)
An welcher Stelle hast du denn Angst vor einem Überlauf?
Ich meine, du codest ja nicht in C ,-)
Solange der Python-Interpreter nicht buggy ist, können zu viele Daten IMHO höchstens bewirken, dass der Prozess der die request behandelt vom kernel abgeschossen werden muss, weil er den ganzen RAM verbaucht, dann kann halt derjenige, der meint dir so viele Dtaen schicken zu müssen nicht weiterarbeiten.
Hat er dann ja auch nicht verdient ,-)
- jens
- Moderator
- Beiträge: 8458
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Da hast du wahrscheinlich recht...
Naja, ich hab irgendwo davon gelesen, das es sicherheitstechnisch besser wäre, wenn man die Länge überprüft. Nun wollte ich mal eine zweite Meinung einholen
Generell ist es allerdings kein großer Aufwand das mal zu testen:
Allerdings wird CONTENT_LENGTH auch vom Client aus gesetzt... Somit ist es fraglich was die Überprüfung taugt, wenn sie vom Client "manipuliert" werden kann...
Vielleicht überprüft Apache das ganze ja auch, bevor er das CGI startet?!?!
Naja, ich hab irgendwo davon gelesen, das es sicherheitstechnisch besser wäre, wenn man die Länge überprüft. Nun wollte ich mal eine zweite Meinung einholen

Generell ist es allerdings kein großer Aufwand das mal zu testen:
Code: Alles auswählen
if os.environ.has_key("CONTENT_LENGTH"):
# Ist nur vorhanden, wenn der Client POST Daten schickt.
length = int(os.environ["CONTENT_LENGTH"])
if length>65534:
print "Content-type: text/html; charset=utf-8\r\n"
print "<h1>Error: Too much POST/GET content!</h1>"
print "Content length = %s" % length
sys.exit()
Allerdings wird CONTENT_LENGTH auch vom Client aus gesetzt... Somit ist es fraglich was die Überprüfung taugt, wenn sie vom Client "manipuliert" werden kann...
Vielleicht überprüft Apache das ganze ja auch, bevor er das CGI startet?!?!
CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Hmm, ich denke nicht.
Du hast die Daten ja schon und wenn du prüfen kannst, wie groß sie sind macht das ja keinen Sinn mehr, da du ja schon weißt, dass der Interpretzer damit läuft, denn sonst könntest du die Daten ja wohl kaum prüfen, nicht wahr?
Allerdings kenne ich mich da nicht so sonderlich gut aus, am besten fragst du mal in einer passenden Mailingliste (Apache oder Perl oder so). Ich würde allerdings es nicht prüfen, außer ich will die Daten speichern, zum Beispiel nur einen Upload von 10kb großen Bildern erlauben oder so.
Du hast die Daten ja schon und wenn du prüfen kannst, wie groß sie sind macht das ja keinen Sinn mehr, da du ja schon weißt, dass der Interpretzer damit läuft, denn sonst könntest du die Daten ja wohl kaum prüfen, nicht wahr?
Allerdings kenne ich mich da nicht so sonderlich gut aus, am besten fragst du mal in einer passenden Mailingliste (Apache oder Perl oder so). Ich würde allerdings es nicht prüfen, außer ich will die Daten speichern, zum Beispiel nur einen Upload von 10kb großen Bildern erlauben oder so.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Wer ist online?
Mitglieder in diesem Forum: Google [Bot]