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

| phpBB.de Knowledge Base (Offline-Version) ©2005 Sascha Carlin und das phpBB.de-Team - Impressum Das Kopieren von Artikeln (auch auszugsweise) ist nur nach ausdrücklicher Genehmigung erlaubt! phpBB.de: Infos | Forum | Downloads | Dokumentation |