Upgrade 16.06 auf 17.0.1 „X-Frame-Options“-HTTP-Header nicht „SAMEORIGIN“

Nach dem Upgrade kommt die Meldung: “Der „X-Frame-Options“-HTTP-Header ist nicht so konfiguriert, dass er „SAMEORIGIN“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.”
Im Web gibt es dazu die Info, dass der Header “X-Frame-Options: Sameorigin” zur NGINX config hinzugefügt werden soll. Aber weder das Einfüben bei nginx.conf, nextcloud.conf noch bei header.conf hilft.
Hat jemand eine Lösung?

Genauso, habe ich es heute gemacht - eingefügt in die header.conf. Anschließend NginX neu gestartet und die Meldung war weg.

1 Like

Hallo

Hier meine Config, mit dieser war die Meldung nach dem nginx reload weg.

Grüsse

server {
server_name cloud.xyz.ch;

# Add headers to serve security related headers
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
add_header Strict-Transport-Security "max-age=15768000; #includeSubDomains; preload;";
#I found this header is needed on Ubuntu, but not on Arch Linux. 
add_header X-Frame-Options "SAMEORIGIN";

# Path to the root of your installation
root /var/www/nextcloud/;

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

location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}

# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
# last;

location = /.well-known/carddav {
    return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
   return 301 $scheme://$host/remote.php/dav;
}

location ~ /.well-known/acme-challenge {
  allow all;
}

# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;

# Disable gzip to avoid the removal of the ETag header
gzip off;

# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;

error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;

location / {
   rewrite ^ /index.php$uri;
}

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
   deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
   deny all;
 }

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
   include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   #Avoid sending the security headers twice
   fastcgi_param modHeadersAvailable true;
   fastcgi_param front_controller_active true;
   fastcgi_pass unix:/run/php/php7.2-fpm.sock;
   fastcgi_intercept_errors on;
   fastcgi_request_buffering off;
}

location ~ ^/(?:updater|ocs-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 ~* \.(?:css|js)$ {
    try_files $uri /index.php$uri$is_args$args;
    add_header Cache-Control "public, max-age=7200";
    # Add headers to serve security related headers (It is intended to
    # have those duplicated to the ones above)
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    add_header Referrer-Policy no-referrer;
    # Optional: Don't log access to assets
    access_log off;

}

location ~* .(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don’t log access to other assets
access_log off;
}

listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/cloud.xyz.ch/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.xyz.ch/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;


ssl_trusted_certificate /etc/letsencrypt/live/cloud.xyz.ch/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;

}
server {
if ($host = cloud.xyz.ch) {
return 301 https://$host$request_uri;
}

listen 80;
server_name cloud.xyz.ch;
return 404;

}

Gruezi Mischa,

    erstmal vielen Dank für die Hilfe.

Bei Deiner Config fiel mir mein grober Schnitzer auf. Peinlich,
peinlich.

    Statt "add_header X-Frame-Options

“SAMEORIGIN”;" habe ich “add_header X-Frame-Options**:** “SAMEORIGIN”;” Dieser

Doppelpunkt war der Fehler.

Grüsse

Ich habe exakt das selbe Problem. Nach dem Updatevon NC 16 auf NC 17.1 über den Updater bekomme ich diese Meldung:

“Der „X-Frame-Options“-HTTP-Header ist nicht so konfiguriert, dass er „SAMEORIGIN“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.”

Da ich nicht so bewandert bin mit der Konfig, habe ich NC von nem Kumpel installieren lassen. Der hat jedoch auch keine Ahnung wie sich das beheben lässt.

Die header.conf gibts laut locate header.conf nicht.

Was nun?

@ Fallensteller: ich habe die header nur ausgelagert. Bei Dir sollten sie in die nginx.conf gehen.
Probier mal: sudo nano /etc/nginx/nginx.conf
Dann füge ein: add_header X-Frame-Options “SAMEORIGIN”;
und schliesse ab mit: STRG o und STRG x
danach noch nginx neu starten mit: sudo /etc/init.d/nginx restart

Wenn Du jetzt in NC im admin die Einstellungen aufrufst, kommt die Meldung nicht wieder.

Das ist der Inhalt der nginx.conf unter /etc/nginx/

    default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

include /etc/nginx/conf.d/*.conf;

}

wo gehört das add_header X-Frame-Options “SAMEORIGIN”; hin?
Scheint als wäre das die falsche Datei?

Absolut richtig: das ist die falsche Datei. Sieh Dir mal den Beitrag 3 von Mischa an. Dort sind alle add_header in der config - und der neue Eintrag ist kommentiert.

Nicht direkt steinigen. Ist alles noch Neuland für mich. Wo finde ich die Datei die ich editieren muss?

Schau mal unter /etc/nginx/sites-enabled. In dem Verzeichnis sind Links auf die entsprechenden Konfigurationsdatei(en) der einzelnen Server gesetzt.
Dort wirst du vermutlich fündig. Wie die Datei genau heißt, kann ich dir leider nicht sagen (Name kann frei vergeben werden).

Leider gibt es den Ordner nginx nicht unter /etc. Ich habe alles abgesucht aber nichts gefunden.

Dann setzt du wohl auch kein NginX, sondern Apache ein… Dann solltest du unter /etc/apache2 (Debian/Ubuntu) oder /etc/httpd (CentOS) die entsprechenden Konfig-Dateien finden.

Wie wurde die NC Instanz denn aufgesetzt?

Das passt irgendwie nicht zusammen…

Richtig. Es ist nginx aber dennoch ist die Datei nicht dort. Ich bin jetzt unterwegs und Versuche das ganze später nochmal am PC.

Der Ordner mit besagter Datei ist bei mir unter
/etc/nginx/config.d/

Danke für die Hilfe

Vielen Dank!! Ich verstehe wenig. Aber dank dem Pfad für nginx, dem Dateiaufbau und dem add_header Beispiel in diesem Sample konnte ich meine Datei in sites-available/nextcloud finden und die fehlenden Zeilen eintragen. Habe lange gesucht danach.
SUPER!! DANKE!!