PHP en MySQLeen goed team

Beveiliging van directories

Beveiliging van directories.

Met name op een webserver is beveiliging aan de orde.
Er zijn te veel plekken waar een argeloze of opzettelijk kwaadwillende persoon heel wat kwaad kan doen.
Apache heeft een eigen voorziening voor welke directories met naam en wachtwoord afschermt.

De files welke Apache hiervoor gebruikt, zijn .htaccess en .htpassword.
De file .htaccess is dan ook met name in de httpd.conf vermeld.
Kijk hier eens naar :

#
# AccessFileName: The name of the file to look for in each directory
# for access control information.
#
AccessFileName .htaccess

#
# The following lines prevent .htaccess files from being viewed by
# Web clients. Since .htaccess files often contain authorization
# information, access is disallowed for security reasons. Comment
# these lines out if you want Web visitors to see the contents of
# .htaccess files. If you change the AccessFileName directive above,
# be sure to make the corresponding changes here.
#
# Also, folks tend to use names such as .htpasswd for password
# files, so this will protect those as well.
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All


Dit geeft dus aan dat de file .htaccess hier specifiek voor bedoeld is, en dat de files met .ht als begin niet gezien kunnen worden.

DE WERKING

In de directorie welke je beveiligen wilt dien je beide files te plaatsen.

  • .htaccess
  • .htpassword

Dan dien je weten wat de naam van het pad van de directorie is, welke je beveiligen wilt.
Daarvoor plaats je in de betreffende directorie de volgende file.
phpinfo.php
Veel lezers zullen dit bekend voorkomen.
Inderdaad, het is het bekende varaiabelen script.

Het script zelf bevat slechts 1 regel.
<? phpinfo() ?>

Dit script kun je zelf met kladblok typen.

In de betreffende directorie start je phpinfo.php door in de adresbalk te typen

http://www.uw_domeinnaam.nl/te_beveiligen_directorie/phpinfo.php

Zoek dan naar HTTP_SERVER_VARS["PATH_TRANSLATED"]
en je krijgt een linux cq. unix pad te zien :

/home/sites/site6655/web/te_beveiligen_directorie/phpinfo.php

Noteer dit pad.

.HTACCESS

Nu gaan we de .htaccess file aanpassen.

Dit script kun je zelf met kladblok typen.

order allow,deny
allow from all
require valid-user
Authname "Uw naam voor de beveiliging"
AuthPAM_Enabled off
Authtype Basic
AuthUserFile /home/sites/site6655/web/te_beveiligen_directorie/.htpasswd


Een aantal zaken dienen te worden aangepast.
Dat zijn :

  • Authname
  • AuthUserFile

Bij Authname mag je een willekeurige naam kiezen mits je maar aanhalingstekens plaats als je woorden met spaties gebruikt.
Dus

  • "Uw naam voor de beveiliging"   is goed
  • Uw naam voor de beveiliging       is niet goed
  • Uw_naam_voor_de_beveiling       is ook goed

Bij AuthUserFile vul je het pad in naar je te beveiligen directorie.
Dat is het pad welke je net genoteerd hebt, welke je aanvult met de filenaam .htpassword .

.HTPASSWD

Nu het maken van het wachtwoord.
Daar gebruiken we het programma htpasswd.exe voor.

Dit programma kun je downloaden van https://www.vanwijheweb.nl/portaal/portaal
(tesamen met de andere onderdelen van dit artikel)

Download het zip-bestand naar C:\password .
Maak de directorie als deze nog niet bestaat.
Unzip het zip-bestand in dezelfde directorie.
Open een DOS box en ga naar C:\password
Type het volgende commando:

htpasswd -c .htpassword beheerder



We gaan de user beheerder toevoegen.
Je krijgt nu een scherm waar je om een wachtwoord wordt gevraagd en ter bevestiging nogmaals.
Het door mij gekozen wachtwoord is welkom .
De sterretjes verhullen het door u getypte wachtwoord.



Na beide keren keren na het invoeren op Enter gedrukt te hebben, krijg je volgende scherm.



We gaan de .htpasswd file eens bekijken.

beheerder:$apr1$/O2.....$dgfnME04cVtY0MJsbTNkc.

Dat is nu alles.
De user beheerder lees je terug, maar de rest?
Het wachtwoord is geëncrypt, dus niet zomaar terug te lezen.
Een kleine waarschuwing is hier dus op zijn plaats.
Schrijf je wachtwoorden op en bewaar ze op een veilige plek, daar ze absoluut niet meer terug te lezen zijn.

UPLOADEN

Rest ons het uploaden naar je webserver.
Let hierbij op dat je beide files in ASCI formaat upload.
Doe je de upload in binaire formaat (de enige andere mogelijkheid), zijn de files niet meer te lezen.

WINDOWS WEBSERVER

Op een windows machine moet je lokale pad in de .htaccess file aangeven.
Zoiets als :

c:/program files/apache group/apache/htdocs/te_beveiligen_directorie

MEER GEBRUIKERS TOEVOEGEN

Mocht je later nog meer gebruikers willen toevoegen, open een DOS box en ga naar C:\password
Type het volgende commando:

htpasswd .htpasswd een_gebruiker

Je ziet dezelfde schermen als hierboven voorbijkomen.

Tot zover dit artikel.

Veel programmeer plezier ermee.


Tot ziens,

Ubel Jan van Wijhe
van Wijhe Consultancy