Neautorizovaný přístup k obrázkům

V Drupalu 7 jsem narazil na problém s přístupem k neveřejným obrázkům. Web je bohužel přístupný jen v interní síti, tak nemohu poskytnout odkaz. Problém je následující:

Potřebuji na web ukládat články s obrázky, přičemž některé články (a jim přiřazené obrázky) mají být veřejné a jiné neveřejné. Zapnul jsem privátní ukládání obrázků a pro zobrazování obrázků využívám modul colorbox, což ale na níže popsaný problém nemá vliv.

Jak jsem pochopil, při zapnutí privátního ukládání obrázků se v článcích obrázky zobrazují přes "virtuální" adresář "system", tedy např. /system/files/IMG_0100.JPG. Toto funguje bez problémů, tedy tento obrázek se zobrazí jen uživatelům, kteří jsou oprávnění se na obrázek koukat. Současně "přirozený" adresář /sites/default/files/internal (to internal jsem nadefinoval já jako adresář pro privátní soubory) je přes webový prohlížeč nepřístupný (díky .htaccess), což je správně.

Problém je s tím, že náhledy obrázky (thumbnail, medium, large), které chci využívat, se ukládají do adresářů /sites/default/files/internal/styles/thumbnail/private, resp. medium/private a large/private. Ty jsou samy o sobě nepřístupné, ovšem obrázky z nich lze neautorizovaným uživatelům zobrazit hned dvěma způsoby:

1. Přes /system/files/styles/thumbnail/private/IMG_0100.JPG

2. Přes /sites/default/files/styles/thumbnail/private/IMG_0100.JPG (nechápu moc smysl této cesty - reálně v souborovém systému neexistuje)

Hledal jsem něco o tomto problém, ale zdá se, že všichni spíše řeší problém, že obrázky nelze zobrazit, než že se zobrazují, když nemají :-)

Máte někdo typ, co s tím?

Děkuji moc.

Radek

 

 

 

Profile picture for user Jan Polzer

Dobrý den, to se řeší tak, že privátní složka není fyzicky umístěna v sites/default/files, ale úplně mimo souborovou strukturu Drupalu. Takže v nastavení cesty k ní byste mohl uvést něco jako ../private-files. No a na serveru pak máte v nějakém umístění složku drupal s Drupalem a vším okolo a vedle ní na stejné úrovni složku private-files. Z toho vyplývá, že není dostupná přes prohlížeč. Zároveň však musíte na serveru nastavit práva tak, aby Drupal byl schopen do této složky zapisovat, přestože není v jeho adresáři.

návštěvník

Dobrý den,

děkuji, ale bojím se, že tohle nepomůže (i když to mohu vyzkoušet). Problém NENÍ v tom, že se prohlížeč dostane k privátním obrázkům přes cestu existující v souborovém systému (což by řešilo umístění souborů mimo složku pro webové stránky). Zobrazování resp. nezobrazování souborů přes tyto cesty funguje naprosto korektně (díky .htaccess).

Problém JE v tom, že Drupal podle mého názoru špatně řeší přístup k náhledům obrázků ve složce styles, ale přes "virtuální" cesty, které si sám vytváří (např. /system/...) - v čemž mu asi nezabrání přesunutí zdrojových obrázků někam jinam.

návštěvník

Prima, díky za nasměrování, jsem rád, že je to aspoň známý problém.

Smutnější je to, že na webu běží verze 7.14 a opravené to buď není, nebo se chyba vrátila (verzi 7.13 nikde nemám). Zkusím to dál prozkoumat.

Odpovědět

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru