Sven Rautenberg: Imagemagick Konvertierung

Beitrag lesen

Moin!

Ich verwende folgenden Code zur Konvertierung einer Bilddatei:

$thumb = "/pfad/html/bilder/thumb1.jpg";
exec( "convert $thumb -blur 4 /pfad/html/bilder/blur_thumb1.jpg");

  
Au weia. Da hast du einen wirklich üblen Kontextwechsel nicht beachtet, und das kann durchaus üble Konsequenzen haben, gerade bei exec().  
  
Du wechselst hier vom Kontext "simpler Text als Dateiname" in den Kontext "Kommandozeilenargument" - und das ist deshalb fatal, weil das Kommandozeilenargument in den dir bekannten Fällen keinerlei Veränderung am Dateinamen erfordert. Das sind aber alles die guten Fälle mit freundlich gestalteten Dateinamen.  
  
Was ist mit Fällen, in denen unfreundliche Dateinamen vorkommen?  
  
Nutze immer [escapeshellarg()](http://de3.php.net/escapeshellarg) und [escapeshellcmd()](http://de3.php.net/escapeshellcmd), wenn du irgendwelche Variablen in die Kommandozeile einfügen willst.  
  
Ansonsten kann es dir passieren, dass man dir zusätzliche Kommandos in die Kommandozeile einfügt, die du aber absolut nicht ausgeführt sehen willst.  
  
 - Sven Rautenberg