68 lines
2.3 KiB
ApacheConf
68 lines
2.3 KiB
ApacheConf
# ==================================================
|
|
# WhatsApp Bot Manager - HestiaCP compatible minimal .htaccess
|
|
# Simplified for shared hosting / HestiaCP (avoids server-level directives)
|
|
# ==================================================
|
|
|
|
# Seguridad básica
|
|
Options -Indexes
|
|
DirectoryIndex index.php index.html
|
|
|
|
# Activar rewrite (si está disponible)
|
|
<IfModule mod_rewrite.c>
|
|
RewriteEngine On
|
|
|
|
# Bloquear acceso a directorios de desarrollo y temporales
|
|
RewriteRule ^(dev|tmp)(/|$) - [F,L]
|
|
|
|
# Bloquear llamadas sospechosas en query string (buscar palabras SQL completas; evitar falsos positivos en parámetros como 'before')
|
|
RewriteCond %{QUERY_STRING} (^|[^A-Za-z0-9_])(union|select|insert|delete|drop|create|update|and|or)([^A-Za-z0-9_]|$) [NC]
|
|
RewriteRule .* - [F,L]
|
|
|
|
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC]
|
|
RewriteRule .* - [F,L]
|
|
|
|
RewriteCond %{QUERY_STRING} \.\.\/ [NC]
|
|
RewriteRule .* - [F,L]
|
|
</IfModule>
|
|
|
|
# Proteger archivos de configuración
|
|
<FilesMatch "^(config|database|\.env).*\.(php|ini|conf)$">
|
|
Require all denied
|
|
</FilesMatch>
|
|
|
|
# Proteger archivos ocultos
|
|
<FilesMatch "^\.|\.bak$|\.old$|\.orig$|\.save$|\.swp$|\.tmp$">
|
|
Require all denied
|
|
</FilesMatch>
|
|
|
|
# Cabeceras de seguridad (si está disponible)
|
|
<IfModule mod_headers.c>
|
|
Header always set X-Frame-Options "SAMEORIGIN"
|
|
Header always set X-XSS-Protection "1; mode=block"
|
|
Header always set X-Content-Type-Options "nosniff"
|
|
Header always set Referrer-Policy "strict-origin-when-cross-origin"
|
|
</IfModule>
|
|
|
|
# Compresión y cache (si están disponibles)
|
|
<IfModule mod_deflate.c>
|
|
<FilesMatch "\.(html|htm|php|css|js|xml|txt|json)$">
|
|
SetOutputFilter DEFLATE
|
|
</FilesMatch>
|
|
</IfModule>
|
|
|
|
<IfModule mod_expires.c>
|
|
ExpiresActive On
|
|
<FilesMatch "\.(css|js)$">
|
|
ExpiresDefault "access plus 1 month"
|
|
</FilesMatch>
|
|
<FilesMatch "\.(jpg|jpeg|png|gif|webp|svg|ico)$">
|
|
ExpiresDefault "access plus 6 months"
|
|
</FilesMatch>
|
|
</IfModule>
|
|
|
|
# Charset por defecto
|
|
AddDefaultCharset UTF-8
|
|
|
|
# Nota: ServerTokens y ServerSignature son directivas a nivel de servidor y no están permitidas en .htaccess en muchos entornos.
|
|
# Si necesitas esas opciones, configúralas en la configuración global de Apache (httpd.conf/extra) o solicita al proveedor que lo ajuste.
|