"The shell stopped unexpectedly and Explorer.exe was restarted."
"The shell stopped unexpectedly and Explorer.exe was restarted."
Juist. Zodra je geauthenticeerd voor een directory bent kun je mensen in een index.php zelf verder afhandelen.Kaassoevlee schreef op dinsdag 20 december 2005 @ 09:44:
Dan bedoel je een htaccess login (dus met htpasswd)?
neem hier eens een kijkje
deny from all
Met een PHP scriptje buiten die map kun je dan de bestanden uit de map halen en met de juiste headers en readfile() tonen.
1
2
3
| <?php header("location: " . $_SERVER["PHP_AUTH_USER"] . "/"); ?> |
Werkt ook goed, alleen nu kun je simpel de directory in de adresbalk van je browser aanpassen zodat je bij een map van een andere gebruiker komt, dit moet natuurlijk niet kunnen.
[ Voor 7% gewijzigd door jelmervos op 20-12-2005 14:41 ]
"The shell stopped unexpectedly and Explorer.exe was restarted."
Het is misschien nog beter en veiliger om de directory met beveiligde bestanden buiten de wwwroot te zetten (zodat je er vanaf het web niet zomaar bij kunt), en alle acties die daarheen linken via je index.php te linken.Kaassoevlee schreef op dinsdag 20 december 2005 @ 14:40:
Ik heb nu een .htaccess en .htpasswd in de root map gezet, werkt perfect. Vervolgens stuur ik via php de gebruiker door naar de jusite map:
PHP:
1 2 3 <?php header("location: " . $_SERVER["PHP_AUTH_USER"] . "/"); ?>
Werkt ook goed, alleen nu kun je simpel de directory in de adresbalk van je browser aanpassen zodat je bij een map van een andere gebruiker komt, dit moet natuurlijk niet kunnen.
1
2
3
4
5
6
7
| echo ("<strong>Jouw beschikbare bestanden</strong><ul>"); foreach( glob("./../../{$_SERVER['PHP_AUTH_USER']}/*.doc") as $filename) { $file = basename($filename); echo ("<li><a href='index.php?getfile={$file}'>{$file}</li>\n"); } echo("</ul>"); |
Dan de getfile $_GET parameter afvangen, en weer linken naar
1
2
3
| header('content-type: application-x-msword'); fpassthru("./../../{$_SERVER['PHP_AUTH_USER']}/{$_GET['getfile']}.doc"); die(); |
[ Voor 13% gewijzigd door SchizoDuckie op 20-12-2005 15:15 ]
1
2
| RewriteEngine On
RewriteRule !^.*/secure/%{REMOTE_USER}/.*$ /denied.html |
"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
laat de gebruikers inloggen met htaccess (zoals anderen al hadden beschreven) en include in ieder bestand is_logged_in.php die kijkt of de gebruiker is ingelogd en zo ja of deze toegang heeft tot dit bestand, of in iedere gebruiker directory
deny from all
allow from [username] (weet niet zeker of dit de goede code is, kijk op de apache site)
of een combinatie van die twee
nou nog een beetje knutselen en aanpassen op je eigen situatie, dan moet het wel lukken
"The shell stopped unexpectedly and Explorer.exe was restarted."
1
2
| RewriteEngine On
RewriteRule !^%{REMOTE_USER}(.*)$ %{REMOTE_USER}/$1 |
Maar volgens mij werken die variabelen niet in het eerste deel van RewriteRule.
[ Voor 3% gewijzigd door jelmervos op 21-12-2005 11:33 ]
"The shell stopped unexpectedly and Explorer.exe was restarted."