Blacklisting von Dateitypen

Hallo zusammen,

ich bin dabei eine Möglichkeit zu implementieren um zu verhindern, dass bestimmte Dateitypen über die Administration hochgeladen werden können.
Ich habe gesehen, dass es dazu das MediaFileExtensionWhitelistEvent gibt welches ausgelöst wird bevor eine Datei hochgeladen wird.
In meinem Subscriber nehme ich mir die Whitelist von Dateitypen und lösche daraus alle Einträge von Dateitypen die gesperrt werden sollen:

public function onMediaFileExtensionWhitelistEvent(MediaFileExtensionWhitelistEvent $event): void {

        $whiteList = $event->getWhitelist();
        $blacklist = array(
            'txt',
            'svg'
        );

        foreach ($whiteList as $index => $fileType) {
            if (in_array($fileType, $blacklist)) {
                unset($whiteList[$index]);
            }
        }

        $event->setWhitelist($whiteList);
    }

Innerhalb der Administration ist es mir dennoch möglich .svg und .txt Dateien hochzuladen.

Hat jemand schon Erfahrung damit gemacht Dateitypen über diesen Weg zu sperren?

Sehr komisch, wenn ich das ganze in der Medienverwaltung versuche, werde ich beim upload daran gehindert. Vielleicht kann das ja noch jemand anderes überprüfen.

Subsriber ist aber sauber angelegt oder?
Grüße

1 „Gefällt mir“

Vielen dank für die Antwort.
Ja, der Subscriber ist auch in der services.xml registriert.

Ich hatte allerdings ein caching Problem dass ich inzwischen beheben konnte.
Danach habe ich die selbe Response beim hochladen von den entsprechenden Dateien auch bekommen.

Allerdings ist es weiterhin möglich Dateien mit dem selben Namen zu ersetzen wenn die entsprechende Datei mit einer ge-blacklisteten Extension bereits im CMS existiert.

Alles in allem bin ich aber froh, dass der Upload jetzt wenigstens blockiert wird.
Danke nochmal. :slightly_smiling_face: