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...
zabezpečení uploadovaných souborů...
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: zabezpečení uploadovaných souborů...
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. 
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
- TomTom
- Začátečník

-
- Registrován: 02. úno 2006
- Bydliště: KönigGratz
Re: zabezpečení uploadovaných souborů...
Ukládat soubory mimo document root webserveru a přistupovat k nim jen přes php.
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: zabezpečení uploadovaných souborů...
Jop, to jsem zapomněl napsat. Přes .htaccess zakázat přístup do té složky "upload".
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
Re: zabezpečení uploadovaných souborů...
ok...trochu si s tím pohraju...zatím díky...
- arxeiss
- Začátečník

- Registrován: 19. črc 2008
- Bydliště: Krmelín (předměstí Ostravy)
- Kontaktovat uživatele:
Re: zabezpečení uploadovaných souborů...
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
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
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min