.htaccess och Apache2

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
Stuggi
Inlägg: 887
Blev medlem: 4 december 2005, 00:09:51
Ort: Jakobstad, Finland
Kontakt:

.htaccess och Apache2

Inlägg av Stuggi »

Nån som vet vad de här raderna i Apache2-confen gör?

Kod: Markera allt

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>
Min vän som använder min server får inte nåt i en .htaccess att funka...
Jag skall försöka ta reda på vad han försöker göra...
Användarvisningsbild
Macce
Inlägg: 4301
Blev medlem: 29 maj 2003, 16:40:58

Inlägg av Macce »

Dom gör att inte en klient kan läsa .htaccess, .htpasswd och motsvarande filer. Du vill inte att klienter får läsa dem.

Jag hade själv problem med .htaccess i Windows (eller är det kanske windows som hade problem med .htaccess? :) ), men i linux fungerar det perfekt.

För att t.ex. skapa en lösenordsskyddad sida med .htaccess och .htpasswd, kan du skriva in följande i dina filer:

.htaccess

Kod: Markera allt

AuthUserFile /home/user/public_html/hemligmapp/.htpasswd
AuthGroupFile None
AuthName "Topphemligt"
AuthType Basic

require valid-user
.htpasswd skall innehålla namn:lösenord, ett per rad, för alla som får ansluta.
Lösenordet skall vara kryptat. T.ex. går det med crypt() i php:

Kod: Markera allt

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="password" name="pass"><input type="submit" value="Kryptera">
</form>
<?php
if ($_POST['pass'] != "") {
echo '<br><br><br><b>L&ouml;senord: ' . crypt($_POST['pass']);
}
?>
Har inte provat ovanstående kod, men den borde fungera.
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

Skapa .htaccess och .htpasswd precis som Macce skriver. Men sen måste du ändra en rad i denna fil:

Kod: Markera allt

sudo nano /etc/apache2/sites-available/default

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
      ------> AllowOverride All <------
                .....
Från början står det None istället för All.

Kom ihåg att starta om apache:

Kod: Markera allt

sudo /etc/init.d/apache2 restart
tgr
Inlägg: 726
Blev medlem: 10 maj 2006, 09:17:07
Ort: Mölndal

Inlägg av tgr »

Fast jag tycker inte alls man skall köra "AllowOverride All"
Det räcker gott med "AllowOverride AuthConfig Limit"
Om man bara ska köra auth i .htaccess altså.
Fast har man själv tillgång att ändra i apacheconfigen så ska man köra "AllowOverride None" och göra sina inställningar i apacheconfigen för att öka säkerheten. För då kan inte ett trasigt phpscript ge mer access av misstag.

Dessutom om man kör php ska man köra "php_admin_value open_basedir /var/www" i sin <VirtualHost> för att phpscript inte ska kunna läsa och skriva utanför.
Självklart så placerar man inte sin lösenordsfil under det directoryt för då kan ju ett trasigt phpscript byta lösenord eller skapa fler konton.
Utan skapa en separat adminsite i så fall för att skapa konton med en egen open_basedir

Dessutom ska man köra ssl om man ska ha inloggning. Speciellt om man köra basic auth. För om nån lyssnar är det väldigt enkelt att få lösenorden rakt av.

Fast detta är ju bara om man bryr sig om säkerhet :)
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

Jag skulle hellre säga att det beror på _hur mycket_ man bryr sig om säkerhet..
Skriv svar