# SICHERHEIT: In hochgeladenen Dateien darf NIEMALS Server-Code ausgeführt werden.
# Defense-in-Depth gegen Upload-RCE (z. B. als Bild getarnte .php-Datei).
#
# HINWEIS: Greift nur unter Apache mit AllowOverride. Unter nginx/LiteSpeed muss
# die Ausführung von Skripten in diesem Verzeichnis serverseitig deaktiviert werden.

# PHP-Engine in diesem Verzeichnis (und Unterverzeichnissen) abschalten.
# WICHTIG: In .htaccess ist NUR php_flag erlaubt. php_admin_flag/php_admin_value
# sind ausschliesslich im vhost/httpd.conf gueltig und loesen sonst HTTP 500 aus
# (Apache-Log: "php_admin_flag not allowed here"), sobald mod_php sie parst –
# das blockiert dann die komplette /uploads-Auslieferung.
<IfModule mod_php.c>
    php_flag engine off
</IfModule>
<IfModule mod_php7.c>
    php_flag engine off
</IfModule>
<IfModule mod_php8.c>
    php_flag engine off
</IfModule>

# Handler/Type-Mappings entfernen, die Code ausführen könnten
<IfModule mod_mime.c>
    RemoveHandler .php .phtml .php3 .php4 .php5 .php7 .phps .phar .pht .cgi .pl .py .asp .aspx .jsp .sh
    RemoveType .php .phtml .php3 .php4 .php5 .php7 .phps .phar .pht
</IfModule>

# Falls als CGI/FCGI ausgeliefert: alles als reine Daten behandeln
<FilesMatch "\.(php|phtml|php3|php4|php5|php7|phps|phar|pht|cgi|pl|py|asp|aspx|jsp|sh)$">
    SetHandler none
    ForceType application/octet-stream
    Require all denied
</FilesMatch>
