phpBB.de - Die deutsche phpBB-Community
Stand: 30.12.2008 04:56
aktuelle Version auf phpBB.de
 
Apache At Work Communities Community Building Informationen und Hinweise Installation/Konfiguration/Update MySQL PHP phpBB-Optimierungen phpBB3 Rechtliches Server & Technik Snippets Templates und Mods
 



Knowledge Base Offline -> At Work -> Dynamisch erzeugte Bilder mittels IMG Code einbinden

Dynamisch erzeugte Bilder mittels IMG Code einbinden
Autor: Dennis Böge
Stand: 30.12.2008 04:56
Neuste Version unter: http://www.phpbb.de/doku/kb/phpimg

Dynamisch erzeugte Bilder mittels IMG Code einbinden

phpBB zeigt nur Bilder mit den Dateiendung .gif, .jp(e)g und .png an. Dynamisch erzeugte Grafiken werden nicht dargestellt, da diese prinzipiell ein Sicherheitsrisiko darstellen. Dieser Artikel beschreibt, wie man die Anzeige solcher Bilder aktiviert.
Ab der Version 2.0.8 werden aus Sicherheitsgründen Bilder die mit dem IMG-Code eingebunden sind auf die Endung überprüft.

Erlaubt sind nur noch
  • gif
  • jpg
  • jpeg
  • png


Es gibt zwei Möglichkeiten, um doch Bilder per [IMG] einzubinden.

Änderungen an der Forumsoftware (Nachteil: Die Sicherheit wird vermindert)

Will man das ändern, muss man in der bbcode.php foldendes suchen:

Code:

text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);

Hier erkennt man deutlich, welche Bilder erlaubt sind.

Möchte man auch mit PHP Generierte Bilder erlauben, muss man einfach nach dem |png ein |php einfügen.

Alternativ kann man auch nur Bilder aus bestimmten Pfaden erlauben. Dazu fügt man unterhalb der oben erwähnten Zeile folgendes ein:
Code:
$text = preg_replace("#\[img\](/images/[^/]+)\[/img\]#si", "[img:$uid]\\1[/img:$uid]", $text);

Das /images/ ist hier der Pfad, in dem sich die erlaubten Bilder befinden.

Durch Änderung auf dem Server
Die bessere Variante ist, dem phpBB ein Bild vorzugaukeln und dann dem Server sagen er soll anstatt des Bildes das PHP-Script laden. Das phpBB denkt dann, es ist ein ganz normales Bild. Der Server startet PHP, erzeugt das Bild und gibt dann auch ganz normales Bild aus.

Das geht per .htaccess . Hier mal ein Beispiel:

Code:
RewriteEngine on
RewriteRule banner.png banner.php



Knowledge Base Offline -> At Work -> Dynamisch erzeugte Bilder mittels IMG Code einbinden