Wat is het HTACCESS-bestandsformaat?
.htaccess is een configuratiebestand voor de Apache-webserver. In tegenstelling tot de meeste bestanden bevat .htaccess geen bestandsnaam voor de punt - de voorafgaande punt maakt deel uit van de naam zelf, waardoor het standaard een verborgen bestand is op Linux en macOS. .htaccess-bestanden mogen niet handmatig worden bewerkt door onbevoegde of ongekwalificeerde gebruikers. Het bestand slaat alle configuratie op in platte tekst.
.htaccess-bestanden bevatten configuratie-instellingen per map die serverfuncties definiëren zoals:
- de indexpagina (standaardpagina) van een map,
- toegangsbeperkingen voor specifieke IP-adressen,
- aangepaste foutpagina's (bijv. 404 Pagina niet gevonden),
- URL-omleidingen en herschrijvingen (
RewriteRule/RewriteCond), - mapbeveiliging met wachtwoorden (
AuthType,AuthUserFile), - aanvullende serverbeveiligingsinstellingen en aangepaste HTTP-responskoppen.
Om .htaccess effect te laten hebben, moet AllowOverride op iets anders dan None zijn ingesteld in de bovenliggende httpd.conf - op extra beveiligde servers is de verwerking van .htaccess vaak volledig uitgeschakeld.
Omdat Apache .htaccess leest bij elk HTTP-verzoek naar de betreffende map, brengt dit een meetbare prestatiekosten met zich mee. De eigen documentatie van Apache raadt aan om gelijkwaardige richtlijnen in server- of VirtualHost-configuratieblokken te plaatsen, aangezien deze slechts eenmaal bij het opstarten worden geladen.
.htaccess is specifiek voor Apache; Nginx ondersteunt dit niet en vereist gelijkwaardige regels in nginx.conf. Het bijbehorende bestand .htpasswd slaat gehashte inloggegevens op voor HTTP Basic Authentication.
Beveiliging & veiligheid
RISICO: HIGH.htaccess zelf is een onschadelijk tekstbestand om te openen in een editor. Het vormt echter een CRITIEK aanvalsoppervlak op webservers: 1. Upload-aanval: als een web-app gebruikers toestaat bestanden te uploaden naar een voor het web toegankelijke map en de AllowOverride van Apache .htaccess toestaat, kan een aanvaller die een gemanipuleerd .htaccess-bestand uploadt, PHP-uitvoering in een uploadmap opnieuw inschakelen en webshells uitvoeren. Mitigatie: sla uploads op buiten de document root; stel AllowOverride None in voor uploadmappen; blokkeer de aanmaak van .htaccess in uploadmappen. 2. Informatieblootstelling: een verkeerd geconfigureerde server die .htaccess als tekstbestand serveert (in plaats van de toegang tot dotfiles te blokkeren) stelt de serverconfiguratie, mappenstructuur en mogelijk verwijzingen naar inloggegevens bloot. De standaardconfiguratie van Apache blokkeert de toegang tot .htaccess-bestanden (FilesMatch ^\.ht).
Formaatdetails
in een notendopProgramma's die HTACCESS-bestanden openen
Technische details
diepe specificaties| Oorsprong | Overgenomen van NCSA HTTPd (1994); Apache HTTP Server ondersteunt het sinds versie 1.0 (1995) |
| Bestandsnaam | Dotfile - de volledige bestandsnaam is `.htaccess`; standaard verborgen op Unix en macOS |
| Bestandstype | Platte tekst Apache-configuratie per map |
| Codering | UTF-8 of ASCII (moet overeenkomen met serverinstellingen) |
| Typische bestandsgrootte | 100 bytes - 50 KB (meeste bestanden onder 5 KB) |
| Verwerkingsfrequentie | Gelezen door Apache bij elk HTTP-verzoek naar de betreffende map en alle submappen |
| Vereiste | `AllowOverride` mag niet op `None` staan in de bovenliggende `httpd.conf`; anders wordt `.htaccess` stilzwijgend genegeerd |
| Veelvoorkomende richtlijnen | `RewriteRule`, `RewriteCond`, `ErrorDocument`, `AuthType`, `AuthUserFile`, `Header`, `Options`, `Redirect` |
| Syntaxis voor toegangscontrole | Apache 2.4 heeft `Allow`/`Deny` vervangen door `Require`; oudere syntaxis vereist `mod_access_compat` |
| Nginx-compatibiliteit | Niet ondersteund door Nginx; regels moeten handmatig worden vertaald naar `nginx.conf`-richtlijnen |
| Prestatie-opmerking | Veroorzaakt schijfleesacties per verzoek; Apache raadt aan om de voorkeur te geven aan `httpd.conf` of VirtualHost-blokken voor configuratie |
| Beveiligingsrisico | Een door een aanvaller geüpload `.htaccess`-bestand in een beschrijfbare webmap kan de uitvoering van server-side scripts inschakelen |
| Uitgebracht | 1994 (NCSA HTTPd, predecessor to Apache; Apache inherited it from 1995) |
| Laatste versie | Apache HTTP Server 2.4.x directive syntax (current) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | httpd.apache.org |
HTACCESS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over HTACCESS-bestanden.