phpbar.de logo

Mailinglisten-Archive

[php] Sicherheit, Output und htmlentities etc

[php] Sicherheit, Output und htmlentities etc

Yannik Hampe yannik at cipher-code.de
Son Mar 29 11:39:46 CEST 2009



Andi wrote:
> Hallo zusammen,
> 
> ich bin grad mal wieder am grübeln und frage mich wie kümmert sich denn 
> der Rest der Welt um Ausgaben?
> Simples Beispiel, user gibt irgendwas in einer form an, zeug wird in DB 
> geschrieben.
> 
> An irgendeiner stelle liest man die daten aus der DB und will sie ausgeben.
> 
> Angefangen von usern die html tags eingeben bishin zu "böseren" Dingen 
> muss man die Ausgabe bearbeiten, sei es nun
> htmlspecialchars oder htmlentities etc. Ich bin eher ein Freund davon 
> die daten vor der Ausgabe zu bearbeiten anstatt
> direkt die bereinigte version in die DB zu schreiben.
> 
> Ich hab mir bis jetzt immer eine rekursive htmlentities gebaut, in die 
> ich auch ein array, sprich eine ganze row stecken kann, bevor ich die
> Daten ausgebe (Smarty vorwerfe)
> Ich frag mich nun, was macht ihr z.b. oder wie handelt ihr das?

Nach meiner Philiosophie sollen die Daten in der Datenbank immer von der
Ausgabe unabhängig sein.
Wenn die Daten mit htmlspecialchars bearbeitet worden sind, dann richtet
sich die Ausgabe ganz offensichtlich an html und die Daten sind damit
nichtmehr von der Ausgabe unabhängig.
Natürlich ist eine Ausgabe in anderen Formaten (zum Beispiel csv oder
sogar plain text) immernoch möglich, aber die htmlspecialchars müssen
wieder rückgängig gemacht werden.
Meines Erachtens ist es die Aufgabe der auszugebenden Scripts darauf zu
achten, dass alles korrekt escapet wird.
Anders als escaping ist die Validierung der Eingabedaten Aufgabe des
Eingabescripts.
> 
> Gruß
> Andi

Yannik

php::bar PHP Wiki   -   Listenarchive