From bd0551b22076b82a6d49e9f7a2b2e0c90a1b2326 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Fri, 05 Feb 2016 07:25:27 -0500 Subject: [PATCH] Secure also downloads of addressbook exports, managesieve script exports and Enigma keys exports --- .htaccess | 64 ++++++++++++++----------------- 1 files changed, 29 insertions(+), 35 deletions(-) diff --git a/.htaccess b/.htaccess index 43ab5b0..59e5dca 100644 --- a/.htaccess +++ b/.htaccess @@ -1,51 +1,43 @@ -# AddDefaultCharset UTF-8 +# AddDefaultCharset UTF-8 AddType text/x-component .htc <IfModule mod_php5.c> -php_flag display_errors Off -php_flag log_errors On -# php_value error_log logs/errors +php_flag display_errors Off +php_flag log_errors On +# php_value error_log logs/errors -php_value upload_max_filesize 5M -php_value post_max_size 6M -php_value memory_limit 64M +php_value upload_max_filesize 5M +php_value post_max_size 6M +php_value memory_limit 64M -php_flag zlib.output_compression Off -php_flag magic_quotes_gpc Off -php_flag magic_quotes_runtime Off -php_flag zend.ze1_compatibility_mode Off -php_flag suhosin.session.encrypt Off +php_flag register_globals Off +php_flag zlib.output_compression Off +php_flag magic_quotes_gpc Off +php_flag magic_quotes_runtime Off +php_flag suhosin.session.encrypt Off -#php_value session.cookie_path / -php_flag session.auto_start Off -php_value session.gc_maxlifetime 21600 -php_value session.gc_divisor 500 -php_value session.gc_probability 1 +#php_value session.cookie_path / +#php_value session.hash_function sha256 +php_flag session.auto_start Off +php_value session.gc_maxlifetime 21600 +php_value session.gc_divisor 500 +php_value session.gc_probability 1 </IfModule> <IfModule mod_rewrite.c> +Options +FollowSymLinks RewriteEngine On RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico -# security rules -RewriteRule ^/?(\.git|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F] -RewriteRule /?(README(.md)?|composer\.json-dist|composer\.json|package\.xml)$ - [F] +# security rules: +# - deny access to files not containing a dot or starting with a dot +# in all locations except installer directory +RewriteRule ^(?!installer|\.well-known\/|[a-zA-Z0-9]{16})(\.?[^\.]+)$ - [F] +# - deny access to some locations +RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F] +# - deny access to some documentation files +RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml|Dockerfile)$ - [F] </IfModule> - -# deny access to all files not containing a "." (dot) -# to block access to different README, Changelog, INSTALL, etc. -# files of various skins and plugins. -<FilesMatch "^[^\.]+$"> - # Apache 2.4 - <IfModule mod_authz_core.c> - Require all denied - </IfModule> - # Apache 2.2 - <IfModule !mod_authz_core.c> - Order Allow,Deny - Deny from all - </IfModule> -</FilesMatch> <IfModule mod_deflate.c> SetOutputFilter DEFLATE @@ -54,6 +46,8 @@ <IfModule mod_headers.c> # replace 'append' with 'merge' for Apache version 2.2.9 and later #Header append Cache-Control public env=!NO_CACHE +# for better privacy/security ask browsers to not set the Referer +#Header set Content-Security-Policy "referrer no-referrer" </IfModule> <IfModule mod_expires.c> -- Gitblit v1.9.1