Merge pull request #1024 from sakkiii/master
HSTS preload + X-XSS enables
This commit is contained in:
		| @@ -287,6 +287,26 @@ matrix_nginx_proxy_proxy_domain_additional_server_configuration_blocks: [] | ||||
| # Of course, a better solution is to just stop using browsers (like Chrome), which participate in such tracking practices. | ||||
| matrix_nginx_proxy_floc_optout_enabled: true | ||||
|  | ||||
| # HSTS Preloading Enable | ||||
| # | ||||
| # In its strongest and recommended form, the [HSTS policy](https://www.chromium.org/hsts) includes all subdomains, and  | ||||
| # indicates a willingness to be “preloaded” into browsers: | ||||
| # `Strict-Transport-Security: max-age=31536000; includeSubDomains; preload` | ||||
| # For more information visit: | ||||
| # - https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security | ||||
| # - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security | ||||
| # - https://hstspreload.org/#opt-in | ||||
| matrix_nginx_proxy_hsts_preload_enabled: false | ||||
|  | ||||
| # X-XSS-Protection Enable | ||||
| # Stops pages from loading when they detect reflected cross-site scripting (XSS) attacks. | ||||
| # Note: Not applicable for grafana | ||||
| # | ||||
| # Learn more about it is here: | ||||
| # - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection | ||||
| # - https://portswigger.net/web-security/cross-site-scripting/reflected | ||||
| matrix_nginx_proxy_xss_protection: "1; mode=block" | ||||
|  | ||||
| # Specifies the SSL configuration that should be used for the SSL protocols and ciphers | ||||
| # This is based on the Mozilla Server Side TLS Recommended configurations. | ||||
| # | ||||
|   | ||||
| @@ -9,6 +9,14 @@ | ||||
| 	{% if matrix_nginx_proxy_floc_optout_enabled %} | ||||
| 		add_header Permissions-Policy interest-cohort=() always; | ||||
| 	{% endif %} | ||||
| 	 | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	 | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
|  | ||||
| 	{% for configuration_block in matrix_nginx_proxy_proxy_domain_additional_server_configuration_blocks %} | ||||
| 		{{- configuration_block }} | ||||
|   | ||||
| @@ -3,8 +3,12 @@ | ||||
| {% macro render_vhost_directives() %} | ||||
| 	gzip on; | ||||
| 	gzip_types text/plain application/json application/javascript text/css image/x-icon font/ttf image/gif; | ||||
|  | ||||
| 	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
| 	add_header X-Content-Type-Options nosniff; | ||||
|  | ||||
| {% for configuration_block in matrix_nginx_proxy_proxy_bot_go_neb_additional_server_configuration_blocks %} | ||||
|   | ||||
| @@ -4,13 +4,20 @@ | ||||
| 	gzip on; | ||||
| 	gzip_types text/plain application/json application/javascript text/css image/x-icon font/ttf image/gif; | ||||
|  | ||||
| 	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	add_header X-Content-Type-Options nosniff; | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
| 	add_header X-Frame-Options SAMEORIGIN; | ||||
|  | ||||
| 	{% if matrix_nginx_proxy_floc_optout_enabled %} | ||||
| 		add_header Permissions-Policy interest-cohort=() always; | ||||
| 	{% endif %} | ||||
|  | ||||
|  | ||||
| 	{% for configuration_block in matrix_nginx_proxy_proxy_element_additional_server_configuration_blocks %} | ||||
| 		{{- configuration_block }} | ||||
| 	{% endfor %} | ||||
|   | ||||
| @@ -4,10 +4,14 @@ | ||||
| 	gzip on; | ||||
| 	gzip_types text/plain application/json application/javascript text/css image/x-icon font/ttf image/gif; | ||||
|  | ||||
| 	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
| 	add_header X-Content-Type-Options nosniff; | ||||
| 	add_header X-Frame-Options SAMEORIGIN; | ||||
| 	add_header X-XSS-Protection "1; mode=block"; | ||||
| 	add_header Content-Security-Policy "frame-ancestors 'none'"; | ||||
| 	{% if matrix_nginx_proxy_floc_optout_enabled %} | ||||
| 		add_header Permissions-Policy interest-cohort=() always; | ||||
|   | ||||
| @@ -3,8 +3,12 @@ | ||||
| {% macro render_vhost_directives() %} | ||||
| 	gzip on; | ||||
| 	gzip_types text/plain application/json application/javascript text/css image/x-icon font/ttf image/gif; | ||||
|  | ||||
| 	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
| 	add_header X-Content-Type-Options nosniff; | ||||
| 	{% if matrix_nginx_proxy_floc_optout_enabled %} | ||||
| 		add_header Permissions-Policy interest-cohort=() always; | ||||
|   | ||||
| @@ -20,6 +20,14 @@ | ||||
| 	{% if matrix_nginx_proxy_floc_optout_enabled %} | ||||
| 		add_header Permissions-Policy interest-cohort=() always; | ||||
| 	{% endif %} | ||||
| 	 | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	 | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
|  | ||||
| 	location /.well-known/matrix { | ||||
| 		root {{ matrix_static_files_base_path }}; | ||||
|   | ||||
| @@ -4,7 +4,11 @@ | ||||
| 	gzip on; | ||||
| 	gzip_types text/plain application/json application/javascript text/css image/x-icon font/ttf image/gif; | ||||
|  | ||||
| 	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	# duplicate X-Content-Type-Options & X-Frame-Options header | ||||
| 	# Enabled by grafana by default | ||||
| 	# add_header X-Content-Type-Options nosniff; | ||||
|   | ||||
| @@ -3,8 +3,12 @@ | ||||
| {% macro render_vhost_directives() %} | ||||
| 	gzip on; | ||||
| 	gzip_types text/plain application/json application/javascript text/css image/x-icon font/ttf image/gif; | ||||
|  | ||||
| 	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
| 	add_header X-Content-Type-Options nosniff; | ||||
| 	{% if matrix_nginx_proxy_floc_optout_enabled %} | ||||
| 		add_header Permissions-Policy interest-cohort=() always; | ||||
|   | ||||
| @@ -4,6 +4,14 @@ | ||||
| 	{% if matrix_nginx_proxy_floc_optout_enabled %} | ||||
| 		add_header Permissions-Policy interest-cohort=() always; | ||||
| 	{% endif %} | ||||
| 	 | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif  | ||||
| 	 | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
|  | ||||
| 	{% for configuration_block in matrix_nginx_proxy_proxy_riot_additional_server_configuration_blocks %} | ||||
| 		{{- configuration_block }} | ||||
|   | ||||
| @@ -3,8 +3,12 @@ | ||||
| {% macro render_vhost_directives() %} | ||||
| 	gzip on; | ||||
| 	gzip_types text/plain application/json application/javascript text/css image/x-icon font/ttf image/gif; | ||||
|  | ||||
| 	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
| 	add_header X-Content-Type-Options nosniff; | ||||
| 	add_header X-Frame-Options DENY; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user