Autor | Zpráva | ||
---|---|---|---|
Networker Profil |
Ahoj,
chtěl bych se zeptat... Mám index.php a pak složku scripts... V ní mám php scripty, které jsou icnlude v index.php ... Jde mi o to, aby scripty fungovali, ale aby uživatel se nemohl dostat do té složky... Jde o to udělat? Díky za odpovědi a návrhy, jak na to :-) |
||
Marschmallow Profil |
Networker:
Pomocí .htaccess. Soubor .htaccess vložíš do složky se scripty. Následujícím zápisem zakážeš všem přístup (kromě interních adres): deny from all |
||
Časová prodleva: 12 dní
|
|||
Networker Profil |
#3 · Zasláno: 29. 10. 2014, 08:07:00
Když to udělám, tak mi to co je uvnitř složky nefunguje...
|
||
Joker Profil |
#4 · Zasláno: 29. 10. 2014, 09:11:59
Co znamená „nefunguje“?
|
||
Networker Profil |
#5 · Zasláno: 29. 10. 2014, 09:30:12
Když mám index.php a v tom include script.php ze složky scripts...
Ve složce scripts je .htaccess kde je jen deny from all Tak když najedu na index.php, tak mi ze složky scripty neběží. To samý, když to dám do složky images a style. Obrázky se nezobrazí a styl stránky taky ne... |
||
Joker Profil |
Networker:
Na PHP skripty vkládané přes include/require a soubory otevírané přes souborový systém by to mělo fungovat*. Pro JavaScripty, obrázky, kaskádové styly a vůbec všechno, co se musí návštěvníkovi stáhnout, aby to fungovalo, to pochopitelně fungovat nebude. Když návštěvníkovi zakážete přístup k souboru, pochopitelně se mu nezobrazí. Když chcete, aby se návštěvníkovi soubor zobrazil, nemůžete mu k němu zakázat přístup. * Za předpokladu, že server podporuje řízení přístupu přes .htaccess |
||
Networker Profil |
#7 · Zasláno: 29. 10. 2014, 09:48:26
Tak bude chyba někde na serveru...
Dobře, když chci udělat aby do složky s obrázkama neměl uživatel přístup, ale soubory se zobrazovali? v index.php se soubory ze složky img zobrazí, ale když dá uživatel cestu web.cz/img/ tak aby se tam nemohl dostat... |
||
Marschmallow Profil |
Networker:
Jak už ti psal v [#6] Joker, pro styly, obrázky, javascripty to nelze udělat - musí se stáhnout. U PHP je to něco jiného, uživatel pošle požadavek na server, PHP ho zpracuje a uživateli vytvoří nový (zpracuje) čistý HTML dokument. ![]() |
||
juriad Profil |
#9 · Zasláno: 29. 10. 2014, 10:15:25
Networker, Marschmallow:
Je to možné. Místo na obrázek buedš odkazovat na skript: web.cz/soubor.php?obrazek=tucnak.png A tento skript zjistí, zda obrázek existuje, vypíše příslušne hlavičky a na konci zavolá readfile. Samozřejmě, že tuto adresu bude moci použít kdokoli i mimo HTML stránku, ale můžeš treba vyžadovat session - kdykoli se stránka načte, vygeneruješ dočasný kód, který přilepíš k adrese obrázku web.cz/soubor.php?obrazek=tucnak.png&kod=1234 a bez tohoto kódu se obrázek odmítne zobrazit.
Pozor však na to, že takový obrázek se nebude cachovat, a tedy se bude stahovat vždy znovu (kdykoli session vyprší). Navíc to nemusí fungovat s různými proxy servery. Obecně tato technika nemá smysl, pokud má nemá soubor být přístupný jen přihlášeným uživatelům. Na veřejném webu nevýhody dost převládají. Je-li něco veřejného, neochráníš to. Jediná spolehlivá ochrana je nezveřejňovat to. |
||
Networker Profil |
#10 · Zasláno: 29. 10. 2014, 10:33:41
Dobře,
děkuji za radu |
||
Joker Profil |
#11 · Zasláno: 29. 10. 2014, 11:53:06
Networker:
„Dobře, když chci udělat aby do složky s obrázkama neměl uživatel přístup, ale soubory se zobrazovali?“ Ten požadavek nedává smysl, „zakázat přístup“ znamená právě to, že se obrázek uživateli nezobrazí. Kdyby se mu zobrazil, nemá zakázaný přístup. Samozřejmě zakázat přístup do složky lze, viz [#9] juriad. Ale spíš než zákaz přístupu k souborům jde o skrytí skutečného umístění souborů. |
||
Časová prodleva: 10 let
|
0