Hi,
damit skripte sicher werden ist es ja notwendig, das der Query String nicht einfach so benutzt wird, sondern das er überprüft wird.
Ja, das ist sehr löblich, wird leider zu oft vergessen.
Meine Frage ist also, wie überprüfe ich _sinvoll_, ob in dem Query String Perlcode benutzt wird.
Das ist nicht sinnvoll. Es ist nämlcih verkehrt herum. Wenn Du alles nachprüfen willst, was _nicht_ drin vorkommen darf wirst Du nie fertig. Also prüfst Du ob etwas drin ist, was Du gebrauchen kannst und schmeißt den gesammten Rest weg. Bei Perl hast Du eh keine andere Chance, denn wie kannst Du etwas prüfen, was auf den ersten Blick durchaus nach einem kleinem Stück aus /dev/random ausseheh kann? ;-)
Wenn es sich bei "Query" um einen SQL-Query handelt weißt Du ja z.B. welche Abfragen du eingebaut hast, wie die DBs und Tabellen heißen, die Spalten sich nennen, was drin ist usw.
Daraus bastelst Du Dir dann einen Miniparser (Dafür reichen meist ein paar Regexe). Desto einfacher der Query, desto einfacher natürlich auch dieser Miniparser. Außerdem gibt es je nach Sprache auch das ein oder andere Mittel so eine Query als reinen String zu behandeln (Ist besonders bei PHP wichtig!) Solche Mittel sind natürlich zur Anwendung zu bringen.
Zwei Links dazu (ist zwar PHP, aber nicht viel sprachspezifisches mit drin):
http://www.sklar.com/page/article/owasp-top-ten
http://www.onlamp.com/pub/a/php/2003/03/20/php_security.html
und einen zu SQL:
http://de.wikipedia.org/wiki/SQL-Injection
Es gibt aber noch jede Menge Material dazu, obige Drei sind nur zufällig die ersten, die Google in anderthalb minuten auswarf.
so short
Christoph Zurnieden