Sind alle Medien aus der Pimcore-Medienverwaltung (DAM) öffentlich zugänglich?

Wie kann ich verhindern, dass Medien, die in der Pimcore-Medienverwaltung abgelegt wurden, ohne Zugriffsbeschränkung ausgeliefert werden? Welche Möglichkeiten gibt es, den Zugriff auf Assets einzuschränken?

Pimcore verfügt über eine leistungsfähige und komfortable Medienverwaltung. Es liegt also nahe, diese Medienverwaltung als Digital Asset Management (DAM) System einzusetzen. Wenn Bilder und Videos in einem Dokument verwendet werden, das anschließend veröffentlicht wird, müssen auch diese Medien öffentlich zugänglich sein. Daher sind alle Medien aus dem Pimcore Asset Management im Standard zugänglich. Die einzige Voraussetzung für den Zugriff ist, dass die Adresse des Assets bekannt ist.

Möchte ich die Medienverwaltung als DAM-System einsetzen, möchte ich auch Medien unabhängig von ihrer konkreten Verwendung speichern und verwalten. Unter Umständen gibt es vertrauliche Dokumente, die nicht für die Öffentlichkeit bestimmt sind.

Die einfachste Möglichkeit, den Zugang zum DAM einzuschränken, ist die folgende Regel

RewriteCond %{REQUEST_METHOD} ^(GET|HEAD)
RewriteCond %{DOCUMENT_ROOT}/var/assets%{REQUEST_URI} -f
RewriteRule ^(.*)$ /var/assets%{REQUEST_URI} [PT,L]

aus der .htaccess Datei im Verzeichnis „public“ des Pimcore-Root-Verzeichnisses zu löschen.

Damit werden nur noch Bilder und Videos ausgeliefert, für die ein Thumbnail erzeugt wurde.

Thumbnails sind Varianten von Originaldateien, die durch einen Imageprocessor verändert wurden. So können z.B. verschiedene Auflösungsvarianten von einem Bild für unterschiedlich große Viewports im responsiven Design erzeugt werden oder Codierungen für die Auslieferung von Videos verändert werden. Wie auch immer, die Thumbnails werden aus einem anderen Verzeichnis ausgeliefert. Der Zugriff auf die Medienverwaltung kann durch das Entfernen der oben genannten Regel beschränkt werden und die Originale sind nicht mehr frei zugänglich. Der Zugriff auf PDF und Office-Dateien, für die keine Thumbnails erzeugt werden können, ist daher auch nicht mehr möglich.

Um den Zugriff weiter einzuschränken und den Zugriff auf bestimmt Medien wieder zu ermöglichen, bedarf es der Programmierung eines Symfony Controllers. Mit Hilfe eines Controllers können komplexere Regeln für den Zugriff auf die Medien programmiert werden.

Eine einfache Regel, wie beispielsweise alle Dateien aus einem bestimmten Ordner (z.B. public) unabhängig vom Format frei zugänglich zu machen, kann wie zuvor über die .htaccess Datei hinterlegt werden.