Der „X-Frame-Options“-HTTP-Header ist nicht so konfiguriert, dass er „SAMEORIGIN“ entspricht

Servus Allerseits,

Nextcloud version 17.0.1
Operating system and version Debian 10
nginx version 1.14.2
PHP version 7.3

Nach dem Update auf 17.01 erscheint die Meldung: Der „X-Frame-Options“-HTTP-Header ist nicht so konfiguriert, dass er „SAMEORIGIN“ entspricht.

In der Konfiguration sind die entsprechenden Einträge vorhanden.
curl -I liefert das auch entsprechend zurück:

curl -I xxxxx.de/nextcloud
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Wed, 18 Dec 2019 12:17:59 GMT
Content-Type: text/html
Content-Length: 178
Location: http://xxxxx.de/nextcloud/
Connection: keep-alive
X-Frame-Options: “SAMEORIGIN”

Auch diverse Prüfwerkzeuge über das Web liefern den X-Frame-Options-Header so zurück.
Ist das in Nextcloud jetzt eine Falschmeldung oder wem kann ich da trauen?

Viele Grüße
Uwe

/etc/nginx/nginx.conf::

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-available/default:

upstream php-handler {
    server unix:/run/php/php7.3-fpm.sock;
}
server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name xxxxx.de 192.168.1.111;
	
	add_header X-Frame-Options “SAMEORIGIN” always;
 
	root /var/www;
	
	location ^~ /.well-known/acme-challenge {
		proxy_pass http://127.0.0.1:81;
		proxy_redirect off;
	}
}
server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
	server_name xxxxx.de 192.168.1.111;
  
	include /etc/nginx/snippets/ssl.conf;
 
	#
	# Add headers to serve security related headers
	#  
	# HSTS (ngx_http_headers_module is required)
	# In order to be recoginzed by SSL test, there must be an index.hmtl in the server's root
	add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload;" always;
	add_header X-Content-Type-Options "nosniff" always;
	add_header X-XSS-Protection "1; mode=block" always;
	add_header X-Robots-Tag none always;
	add_header X-Download-Options noopen always;
	add_header X-Permitted-Cross-Domain-Policies none always;
	add_header Referrer-Policy no-referrer always;
        add_header X-Frame-Options “SAMEORIGIN” always;
 
        # Remove X-Powered-By, which is an information leak
        fastcgi_hide_header X-Powered-By;	
	
	location = / {
        # Disable access to the web root, otherwise nginx will show the default site here.
		deny all;
        }
        	# /html
	location ^~ /html/ {
		proxy_connect_timeout 3600;
                proxy_send_timeout 3600;
                proxy_read_timeout 3600;
                send_timeout 3600;
                proxy_buffering off;
                proxy_request_buffering off;
                proxy_max_temp_file_size 1096m;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Proto $scheme;
		proxy_pass http://127.0.0.1:83;
                proxy_redirect off;
	
	} 
        #
	# Nextcloud
	#
	location ^~ /nextcloud/ {
		# Set max. size of a request (important for uploads to Nextcloud)
		client_max_body_size 10G;
		# Besides the timeout values have to be raised in nginx' Nextcloud config, these values have to be raised for the proxy as well
		proxy_connect_timeout 3600;
		proxy_send_timeout 3600;
		proxy_read_timeout 3600;
		send_timeout 3600;
                proxy_buffering off;
		proxy_request_buffering off;
#		proxy_max_temp_file_size 10240m;
		proxy_max_temp_file_size 1096m;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_pass http://127.0.0.1:82;
		proxy_redirect off;
		proxy_set_header X-Frame-Options “SAMEORIGIN”;
	}
 
	# These two location blocks are needed, otherwise you'll get warnings in the Nextcloud admin UI later on
	location = /.well-known/carddav {
		return 301 $scheme://$host/nextcloud/remote.php/dav;
	}
 
	location = /.well-known/caldav {
		return 301 $scheme://$host/nextcloud/remote.php/dav;
	}
	
	# Well-known URL for Webfinger
	# Regardless of this rule, you'll get a warning in the admin UI when the social app is not installed
	location = /.well-known/webfinger {
		return 301 $scheme://$host/nextcloud/public.php?service=webfinger;
	}
 
	location ~ /(ocm-provider|ocs-provider)/ {
		return 301 $scheme://$host/nextcloud/$1/;
	}
}

/etc/nginx/sites-available/nextcloud:

server {
    listen 127.0.0.1:82;
    server_name 127.0.0.1;
    
    add_header X-Frame-Options “SAMEORIGIN” always;
 
    # Path to the root of your installation
    root /var/www/;
 
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
 
    location ^~ /nextcloud {
        # set max upload size
        client_max_body_size 10G;
        fastcgi_buffers 64 4K;

 
        # Enable gzip but do not remove ETag headers
        gzip on;
        gzip_vary on;
        gzip_comp_level 4;
        gzip_min_length 256;
        gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
        gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json app
lication/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon
 text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
 
        # Uncomment if your server is build with the ngx_pagespeed module
        # This module is currently not supported.
        #pagespeed off;
 
        location /nextcloud {
            rewrite ^ /nextcloud/index.php$request_uri;
        }
 
        location ~ ^\/nextcloud\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
            deny all;
        }
        location ~ ^\/nextcloud\/(?:\.|autotest|occ|issue|indie|db_|console) {
            deny all;
        }
        location ~ ^\/nextcloud\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|ocm-provider\/.+)\.php(?:$|\/) {
            fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
		include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
		
		# Important: disable HTTPS, otherwise no log in will be possible!
            #fastcgi_param HTTPS on;
 
            fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
            fastcgi_param front_controller_active true;
            fastcgi_pass php-handler;
            fastcgi_intercept_errors on;
 
            # Raise timeout values.
            # This is especially important when the Nextcloud setup runs into timeouts (504 gateway errors)
		fastcgi_read_timeout 600;
		fastcgi_send_timeout 600;
		fastcgi_connect_timeout 600;
            fastcgi_request_buffering off;
	    
            # Pass PHP variables directly to PHP.
            # This is usually done in the php.ini. For more flexibility, these variables are configured in the nginx config.
		# All the PHP parameters have to be set in one fastcgi_param. When using more 'fastcgi_param PHP_VALUE' directives, the last one will override all the others.
		fastcgi_param PHP_VALUE "open_basedir=/var/www:/tmp/:/var/nextcloud_data:/dev/urandom:/proc/meminfo
		upload_max_filesize = 10G
		post_max_size = 10G
		max_execution_time = 3600
		max_input_time = 3600
		output_buffering = off";
            
            # Make sure that the real IP of the remote host is passed to PHP.
            fastcgi_param REMOTE_ADDR $http_x_real_ip;
        }
 
        location ~ ^\/nextcloud\/(?:updater|ocs-provider|ocm-provider)(?:$|\/) {
            try_files $uri/ =404;
            index index.php;
        }
 
        # Adding the cache control header for js and css files
		# Make sure it is BELOW the PHP block
		location ~ ^\/nextcloud\/.+[^\/]\.(?:css|js|woff2?|svg|gif|map)$ {
		#location ~ ^\/nextcloud\/.+[^\/]\.(?:css|js|woff2?|svg|gif)$ {
                try_files $uri /nextcloud/index.php$request_uri;
		proxy_set_header Cache-Control "public, max-age=15778463";
		# Add headers to serve security related headers
		# Use 'proxy_set_header' (not 'add_header') as the headers have to be passed through a proxy.
		proxy_set_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload;";
		proxy_set_header X-Content-Type-Options nosniff;
		proxy_set_header X-XSS-Protection "1; mode=block";
		proxy_set_header X-Robots-Tag none;
		proxy_set_header X-Download-Options noopen;
		proxy_set_header X-Permitted-Cross-Domain-Policies none;
		proxy_set_header Referrer-Policy no-referrer;
	        proxy_set_header X-Frame-Options “SAMEORIGIN”;
	
		# Optional: Don't log access to assets
		access_log off;
		}
 
		location ~ ^\/nextcloud\/.+[^\/]\.(?:png|html|ttf|ico|jpg|jpeg)$ {
		try_files $uri /nextcloud/index.php$request_uri;
		# Optional: Don't log access to other assets
		access_log off;
		}
    }
}