ycom icon indicating copy to clipboard operation
ycom copied to clipboard

Bilder aufrufbar bei Verwendung von MediaAuth + Media Manager Effekt "Bild: In JPEG/PNG/GIF/WEBP/AVIF konvertieren"

Open anveno opened this issue 1 year ago • 7 comments

media_manager | 2.17.0 ycom | 4.3.0 REDAXO | 5.18.1 PHP | 8.2.20 ImageMagick | 6.9.10-23

  1. Media Manager Profil "test" mit Effekt "Bild: In JPEG/PNG/GIF/WEBP/AVIF konvertieren" anlegen
  2. Bilddatei im Medienpool; Zugriffsrechte auf "Zugriff für eingeloggte User" einstellen
  3. Bild ist weiterhin via "/media/test/neues_entry_fallback_image.png" aufrufbar (Inkognito-Tab)
  • Direkter Aufruf wird wie erwartet blockiert (/media/neues_entry_fallback_image.png)
  • Aufruf mit anderen Media Manager Effekten wird ebenfalls wie erwartet blockiert

anveno avatar Jan 06 '25 10:01 anveno

Kannst du prüfen, ob die Reihenfolge der Effekte etwas ändert? Bspw. Auth zuerst oder zuletzt? (Ich tippe auf "zuerst", dass dann abgebrochen wird)

AWqxKAWERbXo avatar Jun 29 '25 10:06 AWqxKAWERbXo

ping @anveno

AWqxKAWERbXo avatar Aug 04 '25 20:08 AWqxKAWERbXo

@alxndr-w Sorry, war ein paar Tage raus.

Ich verstehe nicht was Du meinst; der Medientyp hat nur den einen Effekt; da kann ich keine Reihenfolge ändern?

anveno avatar Sep 11 '25 09:09 anveno

@alxndr-w ich hatte falsch im Kopf, wie das mit den Effekten und dem Schutz an der Stelle funktioniert...

Kommentiere Mal diese Zeile aus: https://github.com/redaxo/redaxo/blob/7bc8552a43850597d268eb128732e18aaa949c03/redaxo/src/addons/media_manager/lib/effects/effect_image_format.php#L100

Das Bild dürfte dann nicht mehr laden, aber wieder geschützt sein. Ich gehe davon aus, dass durch die Änderung der Parameter das Mapping nicht mehr funktioniert.

AWqxKAWERbXo avatar Sep 16 '25 06:09 AWqxKAWERbXo

@alxndr-w Ja, wenn ich die Zeile auskommentiere und den Bild-Cache leere, ist es nicht mehr aufrufbar.

Greift der Schutz von YCom da irgendwie zu früh oder wie muss ich das verstehen?

anveno avatar Sep 17 '25 07:09 anveno

Wenn ich das richtig überblicke: Dadurch, dass am Medium durch den Effekt intern der Dateiname geändert wird, aber der Dateiname als Vergleich für den Zugriff herangezogen wird, passt der Vergleich nicht mehr.

Das scheint ein konzeptionelles Problem zu sein, vielleicht haben @skerbis oder @gharlan da eine Idee, oder du sprichst das Mal in Slack an.

AWqxKAWERbXo avatar Sep 17 '25 10:09 AWqxKAWERbXo

Ich kenne den YCom-Code nicht so gut. Aber ihr könnt mal testen, ob es wie erwartet funktioniert, wenn ihr die Methode hier:

https://github.com/yakamara/ycom/blob/096da177ef7b09fe70dc9c5912d31aaa92109f82/plugins/media_auth/lib/ycom_media_auth.php#L13-L33

ändert in:

    public static function checkPerm(rex_media_manager $media_manager): bool
    {
        // check if original media_path
        $media = $media_manager->getMedia();
        $filename = rex_path::basename($media->getMediaPath());
        if (rex_path::media($filename) != $media_manager->getMedia()->getMediaPath()) {
            return true;
        }

        // is backend login
        if (rex_backend_login::hasSession()) {
            return true;
        }

        // is rex_media
        $rex_media = rex_media::get($filename);
        if (!$rex_media) {
            return false;
        }

        return self::checkFrontendPerm($rex_media);
    }

gharlan avatar Sep 17 '25 10:09 gharlan