Sivun suojaus Apachella

eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Sivun suojaus Apachella

Viesti Kirjoittaja eero »

Helpoin tapa on luoda salasanan taakse suojattu sivusto on käyttää Apachen omaa suojausta.

Luo kansioon jonka haluat suojata .htaccess-niminen tiedosto.
Tiedoston nimi tulee ehdottomasti olla .htaccess ei mitään muuta.
Jos teet .htaccess tiedostoa ensikertaa, voi teksti tiedoston tallennus / nimeäminen .htaccess nimellä olla hankalaa koska windows ei ymmärrä kyseistä formaattia ja siksi haluaa aina lisätä .txt joka tiedoston loppuun mitä tallennat notepadilla. Esim: .htaccess.txt on yleensä lopputulos. Jos tallennus ei tahdo sujua tee näin:
avaa notepad, kirjoita .htaccess tiedoston sisältö ja valitse tallenna nimellä ja anna tiedoston nimi lainausmerkeissä, eli näin: ".htaccess" Nyt jopa windows onnistui tekemään tiedoston. Onneksi olkoon .htaccess tiedosto on luotu. Käytä samaa menetelmää luodessasi .password tiedostoa.

.htaccess tiedoston voit laittaa minne tahansa sivuillasi. Sen vaikutus ulottuu joka kansioon ja tiedostoon sen alapuolella. Jos laitat .htaccess tiedoston suoraan kotisivujesi juureen, se vaikuttaa jokaiseen kansioon ja tiedostoon. Jos teet sille oman kansion tai laitat sen esim kansioon secure, sen vaikutus ulottuu kansioon secure ja kaikkii sen sisällä oleviin kansioihin sekä tiedostoihin.

Esimerkki .htaccess-tiedostosta:

order deny,allow
deny from all
#
# Sallitaan liikenne verkosta 192.168.1 ja osoitteesta 62.121.36.122 ilman salasanakyselyä
#
allow from 192.168.1.0/24
allow from 62.121.36.122
AuthType Basic
AuthUserFile C:/wamp/.kayttajat
AuthName "vaatii kirjautumisen"
require valid-user
Satisfy any
# ErrorDocument 401 /401.html (oma virhesivu)




Käyttäjien luominen tapahtuu Windows ja Linux systeemeissä vähän eri tavalla

Salasana-tiedoston polun saat selville php-scriptillä <?php echo getcwd(); ?>

Windows:
  • Luo .kayttajat-tiedosto. Salasana-tiedosto kannattaa nimetä toisella nimellä ja tallentaa eri paikkaan kuin sivustosi on. Esimerkiksi C:\salasanat-kansioon. Esimerkkitiedosto sjaitsee C:\wamp-kansiossa ja on nimeltään .kayttajat. Tämä siksi, ettei ketä tahansa pääse katsomaan kyseistä tiedostoa. Tietysti salasanan voi kryptata ja tämä onkin pakollista jos ei ole omaa palvelinta.

    Esimerkki .kayttajat-tiedostosta:

    eero:salasana
    jokumuu:salasana1


    Tarkasta httpd.conf:sta seuraava:

    #
    # This should be changed to whatever you set DocumentRoot to.
    #
    <Directory "c:/wamp/www/">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important. Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride all

    #
    # Controls who can get stuff from this server.
    #
    # onlineoffline tag - don't remove
    Order Allow,Deny
    Allow from all
    </Directory>

    Jos AllowOverride all on none. Vaihda se.

    Kryptattuja salasanoja voit luoda paikassa :
    http://www.kelv.net/programming/htaccess/index.php3

Linux:
  • Lisää tiedostoon /etc/apache2/httpd.conf rivit

    #
    # Sivuston juurihakemisto
    #
    <Directory "/var/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Allow,Deny
    Allow from all
    </Directory>

    Salasanat kryptataan oletuksena. Jos haluat selkokielisen salasanan, lisää määre -p
    Luo salasana-tiedosto ja käyttäjä komentoriviltä komennolla:

    htpasswd -c /salasanatiedoston/polku/.salasanatiedostonnimi käyttäjänimi salasana
    Esim.:
    Luodaan tiedosto ja lisätään käyttäjä eero salasanalla salasana
    htpasswd -c /var/.kayttajat eero salasana
    Lisätään käyttäjä samu salasanalla salasana
    htpasswd /var/.kayttajat samu salasana

    Käyttäjä poistetaan komennolla:
    htpasswd -D /salasanatiedoston/polku/.salasanatiedostonnimi käyttäjänimi


    Määrityksiä salasanoille:
    • -c luo uuden tiedoston (Jos on jo tiedosto, niin ÄLÄ KÄYTÄ)
      -m kryptaa MD5-muotoon
      -d cryptaa salasanan (Oletus. Ei välttämättä tarvi)
      -p ei kryptaa salasanaa
      -D poistaa käyttäjän

Voit luoda omat virhesivut. Virheitä on seuraavia:
400 - Bad request
401 - Authorization Required
403 - Forbidden directory
404 - Page not found
500 - Internal Server Error

Koodi tulee .access-tiedostoon. Virhetiedoston polun on oltava sivuston juuressa.




Jos huomaat kokeilun aikana, että pääset sivustolle vaikka olet estänyt sen, niin se johtuu siitä, että ainakin Firefox pitää "muistissa" kirjautumisen kunnes olet sulkenut kaikki selaimet. IE:llä en päässyt testaamaan sillä kun määritin sivustolle julkisen domainnimen, niin IE jostain käsittämättömästä syystä ei löytänyt sivustoa enää...