zabezpečení souboru ve složce app

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Petr20
Člen | 1
+
0
-

Dobrý den,
chtěl bych se zeptat jak řešíte situaci kdy potřebujete někomu dat ftp přistup jen do složky /www jak pak zabezpečit, aby nemohl nahrát php soubor obsahující něco takového

$file = "../app/config/config.local.neon";
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;

je možné nějak zabezpečit app složku proti funkci readfile() nebo jak se tohle řeší ? Děkuji za odpověď

Namespace
Člen | 81
+
0
-

Záleží, jaké ftp používáš. Většina, co jsem viděl, umí nastavit oprávnění pro uživatele a složku/y. Ale to je otázka na linux admina

enumag
Člen | 2118
+
+1
-

Pokud nepotřebuješ aby dotyčný mohl nahrávat i spustitelné PHP soubory a pokud by ses spokojil s podsložkou složky www tak to lze vyřešit přes .htaccess. Ten FTP přístup by byl jen na tu podsložku a spustitelné soubory by v této podsložce nefungovaly. KCFinder pro tento účel používá tento .htaccess. Jen pozor aby uživatel nemohl přes to FTP upravit či smazat tento soubor, nejspíše tedy budeš potřebovat dvě úrovně složek.

Lepší řešení neznám, readfile není zdaleka jediná věc v PHP kterou by v tomto případě šlo zneužít.

Editoval enumag (21. 7. 2015 0:30)

llook
Člen | 407
+
+1
-

Složka www jsou jen statické soubory a index.php, ne? Tak bych index.php přesunul jinam, rewrite přesměroval na nové umístění a v té složce vypnul zpracování PHP.

Nebo to, co píše @enumag, pokud ti stačí podsložky, tím se to dost zjednoduší, protože to půjde udělat přes .htaccess.