gibt es fertige Funktionen mit den man Variablen die vom Client an den Server geschickt werden validieren kann, um XSS oder SQL-Injektionen zu verhindern?
XSS: ein template-system verwenden, das automatisch alle variablen per default html-escaped,
z.b. HTML::Template oder HTML::Template::Compiled mit der
option default_escape (leider ist mir ausser den beiden kein modul bekannt, dass so etwas bietet.)
ich fahre damit seit einer ganzen weile gut und muss mir (fast) keine gedanken mehr machen
beim template-schreiben.
Der Antwort von pq ist kaum noch was hinzuzufügen, ausser "hör auf ihren Rat". Ich hab mal bei perlmonks nach default_escape für Template Toolkit gefragt und wurde fast ignoriert (so wenige Antworten auf nicht-triviale Fragen von mir hatte ich noch nie bekommen).
Während fast jeder ordentliche Perl-Hacker bei Datenbanken zu Placeholdern rät, ist das Bewußtsein für XSS leider noch nicht so verbreitet - vermutlich weil keine Datenbanken schaden nehmen, sondern nur der Besucher.
Wenn es darauf ankommt, Daten feiner zu filtern/zu prüfen (nichts gegen pqs Templatemodul, das ist wundervoll!), kann natürlich nicht die Hammermethode des HTML-Escaping greifen.
Taint schützt doch aber vor nichts. Es warnt nur bei der Verwendung von externen Daten.
Wer nicht weiß, was Taint macht, kann sich auch das Skript mit unsauberen Variablen "verschmutzen".
BTW: Ist der Taint-modus hier aus der Mode gekommen?
schützt dich taint-mode vor sql-injections? dort verwende ich den taint-mode nicht, weil er auch
bei platzhaltern meckert. ebenso kann taint-mode gar nichts gegen xss ausrichten.
und genau diese beiden sachen waren doch gefragt.