Thread CGI Sicherheit: Vermeidung gefährlicher Inhalte (165 answers)
Opened by Gast at 2005-12-12 17:10

Strat
 2005-12-15 18:39
#6163 #6163
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe den Thread nicht genau verfolgt, aber hier meine 10c:

gefaehrlich kann ein print in eine Datei nur dann werden, wenn man anhand der Daten in dieser Datei irgendwelche Aktionen veranlasst, oder wenn ein script/programm geschrieben wird, das ausgefuehrt werden kann.

Eine allgemeine Empfehlungen zur Sicherheit:
fast immer ist es besser, wenn man nur gewisse zeichen zulaesst und alle anderen rauswirft (ev. mit Fehlermeldung). Beim Weg, alles verbotene rauszuloeschen uebersieht man schnell was (gerade bei Unicode), und handelt sich so leichter Probleme ein.

x) Wenn Du nicht willst, dass irgendwelche HTML-Befehle (inkl. Javascript etc.) verwendet werden koennen, dann escape den String (z.B. mit CGI::escapeHTML); ob du das vor dem Schreiben in die Datei oder ob du das nach dem Lesen und vor der Ausgabe machst, ist fuer die Sicherheit meistens ziemlich egal. Meist ist es guenstiger, wenn man das schon vor dem Schreiben in die Datei/Datenbank macht, weil i.d.R. haeufiger gelesen als geschrieben wird.

x) Wenn du nur ein paar HTML-Tags zulassen willst (z.B. <b>, <u>, nicht aber <textarea>), dann solltest du dir grundsaetzlich ueberlegen, ob du erstens diese Tags direkt eingeben laesst oder ob du zweitens nicht auf BBCode ausweichst (indem du [ b ]..[/ b] oder [ u ]...[ /u ] tippen laesst).

1.) das ist ein wenig schwieriger, weil du dir vermutlich selbst einen parser schreiben musst, der <b> und </b> und < b > etc. in ruhe laesst, alle anderen Tags aber zu &lt;textarea&gt; etc. macht

2.) Dafuer gibt es auf CPAN schon fertige Module... CPAN:BBCode

habe ich die Frage in etwa erfasst?\n\n

<!--EDIT|Strat|1134665225-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Antworten mit Zitat

View full thread CGI Sicherheit: Vermeidung gefährlicher Inhalte