Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Webmaster-Security Fragen zur richtigen Serverkonfiguration oder Absicherung dynamischer Scripte gehören hier hinein.

HTML-Eingabefelder auf Speicherüberlauf sichern

Diskussion: HTML-Eingabefelder auf Speicherüberlauf sichern im Forum Webmaster-Security, in der Kategorie Security Area; Anzeige Hallo Leute, ich bastle gerade an einer Webseite auf Basis von PHP und bin gerade bei Thema Sicherheit angelangt. ...

Antwort
Alt 07.09.07, 21:21   #1 (permalink)
Senior Member
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 54
Standard HTML-Eingabefelder auf Speicherüberlauf sichern

Anzeige

Hallo Leute,

ich bastle gerade an einer Webseite auf Basis von PHP und bin gerade bei Thema Sicherheit angelangt. Dabei ist mir eingefallen, was denn zum Beispiel passieren würde, wenn man in ein ordinäres HTML-Eingabefeld in einem Formular gigantische Mengen an Daten pasten würde. Gibt es da irgendwelche Schutzmechanismen von PHP bzw. vom Apache-Webserver? Wenn nicht, wäre es doch theoretisch möglich einen ganzen Webserver lahmzulegen, was ich mir aber nicht vorstellen kann, daß das geht. Weiß darüber jemand etwas näheres? Google wollte mir nichts dazu sagen, vielleicht hab ich auch falsch gesucht.

Gruß
odigo

odigo ist offline   Mit Zitat antworten
Alt 07.09.07, 21:33   #2 (permalink)
Senior Member
 
Registriert seit: 27.06.04
Cyberm@ster Leistung: Facit NTK
Likes: 0
Standard

Ob es gehen würde oder nicht, kann ich dir nicht sagen, aber ich denke das müssten dann schon gigantische Datenmengen sein. Auf jedenfall kanns du dem Problem bereits auf HTML-Ebene aus dem Weg gehen indem du das maxlength-Attribut benutzt.
Cyberm@ster ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 07.09.07, 21:49   #3 (permalink)
Administrator
 
Benutzerbild von Mackz
 
Registriert seit: 02.10.01
Mackz Leistung: Pentium IMackz Leistung: Pentium I
Likes: 30
Standard

Zitat:
Original von Cyberm@ster
indem du das maxlength-Attribut benutzt.
maxlength bietet 0 Sicherheit da man das einfach umgehen kann. Die Länge der Usereingaben sollte im Script vor dem Verarbeiten geprüft werden.
__________________
RL sux big time... auch 2012!

Deleting pr0n is like killing your best friend

[HaBo] bei Facebook - Werde Fan
Mackz ist offline   Mit Zitat antworten
Alt 07.09.07, 21:52   #4 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 54
Standard

Zitat:
Original von Mackz
maxlength bietet 0 Sicherheit da man das einfach umgehen kann. Die Länge der Usereingaben sollte im Script vor dem Verarbeiten geprüft werden.
Aber zu diesem Zeitpunkt ist es doch schon zu spät. Da sind die Daten ja quasi schon auf dem Webserver und benötigen theoretisch auch dementsprechend viel Speicher.
odigo ist offline   Mit Zitat antworten
Alt 07.09.07, 21:54   #5 (permalink)
Senior Member
 
Registriert seit: 27.06.04
Cyberm@ster Leistung: Facit NTK
Likes: 0
Standard

Zitat:
da man das einfach umgehen kann
Das wusste ich nicht, sorry. Wie geht das denn, wenn ich fragen darf?
Cyberm@ster ist offline   Mit Zitat antworten
Alt 07.09.07, 22:01   #6 (permalink)
 
Registriert seit: 25.07.06
valenterry Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von Cyberm@ster
Zitat:
da man das einfach umgehen kann
Das wusste ich nicht, sorry. Wie geht das denn, wenn ich fragen darf?
Ganz einfach... ich kopier mir den Quelltext, änder des Attribut und ruf den Quelltext im Browser auf (den Veränderten auf meiner Platte) und schicke die Daten dann an den Server. Alles was clientseitig passiert ist vollkommen unsicher.
valenterry ist offline   Mit Zitat antworten
Alt 07.09.07, 22:18   #7 (permalink)
Senior Member
 
Registriert seit: 27.06.04
Cyberm@ster Leistung: Facit NTK
Likes: 0
Standard

Ach ja stimmt ... Danke.
Cyberm@ster ist offline   Mit Zitat antworten
Alt 07.09.07, 22:44   #8 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Zumindest der Apache schützt das System vor einem out of memory error, indem er die Verarbeitung abbricht, sobald ein bestimmter Speicherbedarf überschritten wird. Wie hoch der sein darf, lässt sich in der php.ini einstellen (memory_limit). Was passiert, wenn memory_limit zu hoch eingestellt ist, weiß ich leider nicht

Vielleicht bricht der Apache auch einfach irgendwann die Verbindung ab, wenn der User hunderte von Megabytes auf den Server schaufelt, das dauert ja auch je nach Verbindung seine Zeit.
Eydeet ist offline   Mit Zitat antworten
Alt 09.09.07, 19:45   #9 (permalink)
 
Registriert seit: 11.08.05
boehmi Leistung: Facit NTK
boehmi eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Original von odigo
Zitat:
Original von Mackz
maxlength bietet 0 Sicherheit da man das einfach umgehen kann. Die Länge der Usereingaben sollte im Script vor dem Verarbeiten geprüft werden.
Aber zu diesem Zeitpunkt ist es doch schon zu spät. Da sind die Daten ja quasi schon auf dem Webserver und benötigen theoretisch auch dementsprechend viel Speicher.
Nicht mit einem JavaScript
boehmi ist offline   Mit Zitat antworten
Alt 09.09.07, 19:54   #10 (permalink)
 
Registriert seit: 25.07.06
valenterry Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von boehmi
Zitat:
Original von odigo
Zitat:
Original von Mackz
maxlength bietet 0 Sicherheit da man das einfach umgehen kann. Die Länge der Usereingaben sollte im Script vor dem Verarbeiten geprüft werden.
Aber zu diesem Zeitpunkt ist es doch schon zu spät. Da sind die Daten ja quasi schon auf dem Webserver und benötigen theoretisch auch dementsprechend viel Speicher.
Nicht mit einem JavaScript
...welches dir rein gar nichts bringt.
valenterry ist offline   Mit Zitat antworten
Alt 09.09.07, 20:04   #11 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
Zitat:
Original von Eydeet
Zumindest der Apache schützt das System vor einem out of memory error, indem er die Verarbeitung abbricht, sobald ein bestimmter Speicherbedarf überschritten wird. Wie hoch der sein darf, lässt sich in der php.ini einstellen (memory_limit).
Dies ist kein Schutz von Apache sondern von PHP, das nur am Rande.
Außerdem dient diese Funktion nicht als Schutz gegen Angriffe von außen, sondern vor schlampiger Programmierung.
Man möchte so einfach verhindern, dass ein schlecht programmierter Script den ganzen RAM auffrisst.

Es gibt aber in PHP noch die Einstellungn 'post_max_size'. Sollte selbsterklärend sein.


Zitat:
Ganz einfach... ich kopier mir den Quelltext, änder des Attribut und ruf den Quelltext im Browser auf
Wenn man wirklich solch eine Attacke ausführen möchte, macht es deutlich mehr Sinn, gleich einen entsprechenden HTTP Header zu senden
Code:
POST /index.php HTTP/1.1
Host: target.de
Content-Type: application/x-www-form-urlencoded
Content-Length: 1000000000 

buffer=oooooooooooooooooooo[....]verflow
Denn das Problem am Browser ist wohl, dass dieser vorher aufgibt bevor man eine kritische Datenmenge erreicht hat.
Außerdem muss man bedenken, dass der User diesen großen Header auch noch komplett hochladen muss, was lange dauern kann.

Sowie gibts bei Apache folgende Einstellung:
Zitat:
LimitRequestFieldSize-Direktive
Beschreibung: Begrenzt die Länge des vom Client gesendeten HTTP-Request-Headers
Syntax: LimitRequestFieldsize Bytes
Voreinstellung: LimitRequestFieldsize 8190
Kontext: Serverkonfiguration
Status: Core
Modul: core

Die Direktive gibt die Anzahl der Bytes an, die in einem HTTP-Header erlaubt sind.

Die Direktive LimitRequestFieldsize erlaubt es dem Serveradministrator, die maximale Größe eines HTTP-Request-Headers zu verringern oder erhöhen. Für den Server muss der Wert groß genug sein, um eine beliebige Headerzeile einer normalen Client-Anfrage vorzuhalten. Die Größe variiert stark zwischen den verschiedenen Client-Ausführungen, oft abhängig vom Ausmaß, mit dem der Anwender die genaue Content-Negotiation-Unterstützung seines Browsers konfiguriert hat. SPNEGO-Authentisierungs-Header können bis zu 12392 Bytes lang sein.

Die Direktive gibt dem Serveradministrator eine größere Kontrolle gegenüber abnormalem Verhalten von Clients, was bei der Vermeidung einiger Formen von Denial-of-Service-Attacken hilfreich sein kann.
LimitRequestFieldSize
Beim IIS gibts ähnliche Einstellmöglichkeiten
Elderan ist offline   Mit Zitat antworten
Alt 09.09.07, 20:09   #12 (permalink)
IsNull
Guest
 
Likes:
Standard

Das Post Limit liegt AFAIK standardmässig bei 8MB. (Gut, ist auch etwas vom Server abhängig.) Mit 8 MB bringt man noch keinen Server in die Knie, oder?

Gruss
IsNull
  Mit Zitat antworten
Alt 10.09.07, 14:35   #13 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
Zitat:
Original von IsNull
Mit 8 MB bringt man noch keinen Server in die Knie, oder?l
Ne, nicht ansatzweise.
Elderan ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Security Area » Webmaster-Security » HTML-Eingabefelder auf Speicherüberlauf sichern
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
GUI Elemente( Eingabefelder, Button ) ansprechen, wie ??? Offset Code Kitchen 7 19.08.07 20:14
Session sichern Lilu (Web-) Design und webbasierte Sprachen 4 20.06.07 17:29
Nur Ordnerstruktur sichern DelumaX Linux/UNIX 8 16.06.04 23:26
bkf Dateien auf DVD sichern??? cpt.jonti Windows 2 16.06.04 15:34


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61