49 lines
1.4 KiB
ApacheConf
49 lines
1.4 KiB
ApacheConf
# =========================
|
|
# Grundschutz
|
|
# =========================
|
|
|
|
# Kein Directory-Listing
|
|
Options -Indexes
|
|
|
|
# Schutz für sensible Dateien
|
|
<FilesMatch "(\.env|\.git|config\.php|_sql\.php)">
|
|
Require all denied
|
|
</FilesMatch>
|
|
|
|
# TODO: ggf. weitere Dateien schützen, z.B. uploads oder tmp
|
|
|
|
# =========================
|
|
# Rewrite zu index.php
|
|
# =========================
|
|
RewriteEngine On
|
|
|
|
# Alles auf index.php umleiten, außer echte Dateien/Verzeichnisse
|
|
RewriteCond %{REQUEST_FILENAME} !-f
|
|
RewriteCond %{REQUEST_FILENAME} !-d
|
|
RewriteRule ^(.*)$ index.php [QSA,L]
|
|
|
|
# =========================
|
|
# Standard-Dokument
|
|
# =========================
|
|
DirectoryIndex index.php
|
|
|
|
# =========================
|
|
# Security Headers
|
|
# =========================
|
|
<IfModule mod_headers.c>
|
|
Header set X-Content-Type-Options "nosniff"
|
|
Header set X-Frame-Options "SAMEORIGIN"
|
|
Header set X-XSS-Protection "1; mode=block"
|
|
Header always set Referrer-Policy "no-referrer-when-downgrade"
|
|
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:;"
|
|
</IfModule>
|
|
|
|
# =========================
|
|
# Upload-Sicherheit
|
|
# =========================
|
|
#<FilesMatch "\./uploads(php|phtml|php3|php4|php5|php7|phps)$">
|
|
# Require all denied
|
|
#</FilesMatch>
|
|
|
|
# TODO: Optional: Upload-Verzeichnisse (device_types, floorplans) via .htaccess zusätzlich schützen
|