Stránka 1 z 1

zabezpečení uploadovaných souborů...

Napsal: sob 19. lis 2011, 17:31
od Václav Sedlář
Dobrý den, pomocí php uploaduju soubory na server do nějaké složky...pak uložím jejich cestu do databáze...

Když si chce uživatel zobrazit nějaký z těch souborů, tak musí zadat, heslo po kterém se dostane do dalši sekce, kde se mu z dbs načte seznam souborů a jako odkaz jsou ty cesty z dbs...po kliknutí se mu otevře ten soubor...

ok, to sice funguje 100%,ale jak si to zabezpečení se mi zdá neefektivní, protože je to postaveno na tom, že uživatel nezná cestu souboru,jenže když zadá do adresního řádku komplet cestu do adresáře, ukáže se mu celý obsah adresáře....

jde to nějak zabezpečit-jak se to řeší? Jak se to v takovém případě řeší...upload dělám poprvé, tak se omlouvám, jestli to dělám blbě....

děkuji za rady...

Re: zabezpečení uploadovaných souborů...

Napsal: sob 19. lis 2011, 20:13
od OndraSter
Já to před mnoha lety řešil tak, že soubory se uploadovaly do složky "upload", kde byly přejmenované na file.1, file.2 atd, kde číslo odpovídalo záznamu v databázi (tudíž nešly spustit PHP skripty a "hacknout" to). Při stahování se volalo download.php?id=<nejake cislo>. Když byl soubor zaheslovaný, tak se to zeptalo na heslo. Po jeho odeslání (nebo pokud tam heslo nebylo) to sáhlo do databáze, vytáhlo původní název souboru, původní velikost atd a odeslalo do prohlížeče příslušné hlavičky. Pak to vzalo soubor upload/file.<nejake cislo> a odeslalo ho jako obsah. :)

Re: zabezpečení uploadovaných souborů...

Napsal: sob 19. lis 2011, 20:24
od TomTom
Ukládat soubory mimo document root webserveru a přistupovat k nim jen přes php.

Re: zabezpečení uploadovaných souborů...

Napsal: sob 19. lis 2011, 22:25
od OndraSter
Jop, to jsem zapomněl napsat. Přes .htaccess zakázat přístup do té složky "upload".

Re: zabezpečení uploadovaných souborů...

Napsal: ned 20. lis 2011, 12:29
od Václav Sedlář
ok...trochu si s tím pohraju...zatím díky...

Re: zabezpečení uploadovaných souborů...

Napsal: pon 21. lis 2011, 16:15
od arxeiss
Přesně jak píšou, v htaccess přes RewriteRule zákzat přístup.
RewriteRule ^cesta/od/rootu/X$ /tvujweb/error/403/ [R,L]

Za X si dosadíš co potřebuješ, pokud tam budou jak soukromé tak veřejné soubory, můžeš rolišit styl ukládání, takže do X bych třeba dal
file[0-9]\.soukromy
to už si pak přizpůsobíš jak potřebuješ.

Jenom, bych měl jeden dotaz, chci vyřešit minimalizaci kódu jak CSSka tak JavaScriptu, a přemýšlím jak to udělat. Co když budu psát odkaz na CSS soubory jako http://mujweb.cz/css/hlavni/ a přes htaccess bych toto přesměroval na nějaký PHP soubpr, který by buď vypsal soubor, nebo ho minimalizoval a pak přepsal. Jenom nevím, jesti to nebude extrémně zpomalovat běh a nebude to zatěžovat server.

Druhý mě napadl, že bych to kontroloval v htaccessu, pokud by soubor neexistoval, přesměrovalo by ho to na php soubor a vytvořil, pokud by existoval htaccess by to nikam nepřesměroval