Was ist das PHTML-Dateiformat?
Eine .phtml-Datei ist ein serverseitiges PHP-Skript, das HTML-Markup mit PHP-Codeblöcken mischt und funktional identisch mit einer Standard-.php-Datei ist. Der einzige wesentliche Unterschied ist die Dateiendung.
Wenn ein Webserver eine Anfrage für eine .phtml-Datei erhält, leitet er die Datei an den PHP-Interpreter weiter. PHP führt die eingebetteten <?php ... ?>-Blöcke aus und gibt das resultierende HTML an den Browser des Clients aus - der Browser sieht den PHP-Quellcode nie. Damit dies funktioniert, muss der Server explizit so konfiguriert sein, dass er .phtml als PHP behandelt. In Apache erfordert dies eine AddHandler application/x-httpd-php .phtml-Direktive (in der .htaccess oder httpd.conf); in Nginx ist ein entsprechendes fastcgi_param-Mapping erforderlich. Ohne diese Konfiguration liefert der Server unter Umständen den rohen PHP-Quellcode an Besucher aus, was ein Risiko für die Offenlegung von Informationen darstellt.
Die Endung .phtml entstand Ende der 1990er Jahre während der Ära von PHP 3 / der frühen Zend Engine, als PHP häufig direkt in HTML-Template-Dateien eingebettet wurde. Sie erlangte dauerhafte Verbreitung im Zend Framework und wird weiterhin aktiv in Magento (jetzt Adobe Commerce) für dessen View-Layer-Template-Dateien verwendet.
Aus Sicherheitssicht ist .phtml ein klassisches Ziel für die Umgehung von Datei-Upload-Filtern: Filter, die .php-Uploads blockieren, übersehen oft .phtml, .php5, .php3 und ähnliche Varianten, was die Ausführung von beliebigem PHP-Code ermöglicht.
Verwandte Formate sind reine .php-Skripte und .phps-Dateien (PHP-Quelltextanzeige). Es gibt keine Magic Bytes und keine interne Versionierung; die PHP-Laufzeitversion wird ausschließlich durch die Serverkonfiguration bestimmt.
Sicherheit
RISIKO: HIGH.phtml-Dateien führen beliebigen PHP-Code auf dem Server aus - das gleiche Risiko wie bei .php. Kritische Sicherheitsprobleme: (1) Wenn ein Datei-Upload-Formular in einer Web-App .phtml-Uploads zulässt, während .php blockiert wird, kann ein Angreifer eine PHP-Webshell mit der Endung .phtml hochladen und Remote-Code-Ausführung auf dem Server erlangen. (2) Wenn ein Server versehentlich den .phtml-Quellcode offenlegt (kein PHP-Handler konfiguriert), werden Anmeldedaten und Datenbank-Verbindungszeichenfolgen im Code öffentlich. Server-Admins sollten: .phtml explizit in der PHP-Handler-Konfiguration auflisten und die Skriptausführung in Upload-Verzeichnissen für .php, .phtml, .phar, .php3, .php4, .php5 verweigern.
Formatdetails
kurz gefasstProgramme zum Öffnen von PHTML-Dateien
Technische Details
technische Spezifikation| Ausführungsmodell | Serverseitig durch den PHP-Interpreter verarbeitet; der Client erhält nur die gerenderte HTML-Ausgabe |
| Kodierung | Klartext, UTF-8 empfohlen; historisch ASCII oder Latin-1 |
| Code-Begrenzer | <?php ... ?> (Standard); <?= ... ?> (Kurzform Echo); <? ... ?> (Short Tag, veraltet) |
| MIME-Typ | application/x-httpd-php; auch text/html und text/x-php je nach Serverkonfiguration |
| Apache-Konfiguration | AddHandler application/x-httpd-php .phtml in .htaccess oder httpd.conf für Ausführung erforderlich |
| Nginx-Konfiguration | fastcgi_param oder Location-Block-Mapping von .phtml auf PHP-FPM erforderlich |
| Hauptanwendungsfall | Magento (Adobe Commerce) View-Layer-Templates; Legacy Zend Framework Views |
| Funktionaler Unterschied zu .php | Keiner - die Verarbeitung ist identisch; nur die Dateiendung unterscheidet sich |
| Sicherheitsrisiko | Klassische Umgehung von Datei-Upload-Filtern: blockiert .php, übersieht aber eventuell .phtml, was beliebige PHP-Ausführung ermöglicht |
| Dateigröße | Typischerweise 1 KB - 500 KB |
| PHP-Versionsunterstützung | Kompatibel mit PHP 4 bis PHP 8.x; keine Änderungen auf Formatebene zwischen den Versionen |
| Zugehörige Betriebssysteme | Linux (Apache/Nginx), Windows (IIS/Apache), macOS |
| Veröffentlicht | circa 1997-1998 (early PHP 3/Zend era) |
| Neueste Version | PHP 8.x (2024); .phtml itself has no versioning |
| Spezifikation | www.php.net |
PHTML-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu PHTML-Dateien.