Browse Source

Force the Content-Security-Policy header, instead of just suggesting it in the docs.

default 2 months ago
parent
commit
292b2fd122
2 changed files with 4 additions and 3 deletions
  1. 1 3
      doc/snac.8
  2. 3 0
      httpd.c

+ 1 - 3
doc/snac.8

@@ -198,9 +198,7 @@ By setting this to true, no inbox collection is done. Inbox collection helps
 being discovered from remote instances, but also increases network traffic.
 being discovered from remote instances, but also increases network traffic.
 .It Ic http_headers
 .It Ic http_headers
 If you need to add more HTTP response headers for whatever reason, you can
 If you need to add more HTTP response headers for whatever reason, you can
-fill this object with the required header/value pairs. For example, for enhanced
+fill this object with the required header/value pairs.
-XSS security, you can set the "Content-Security-Policy" header to "script-src ;"
-to be totally sure that no JavaScript is executed.
 .It Ic show_instance_timeline
 .It Ic show_instance_timeline
 If this is set to true, the instance base URL will show a timeline with the latest
 If this is set to true, the instance base URL will show a timeline with the latest
 user posts instead of the default greeting static page. If other information
 user posts instead of the default greeting static page. If other information

+ 3 - 0
httpd.c

@@ -553,6 +553,9 @@ void httpd_connection(FILE *f)
     headers = xs_dict_append(headers, "access-control-allow-origin", "*");
     headers = xs_dict_append(headers, "access-control-allow-origin", "*");
     headers = xs_dict_append(headers, "access-control-allow-headers", "*");
     headers = xs_dict_append(headers, "access-control-allow-headers", "*");
 
 
+    /* disable any form of fucking JavaScript */
+    headers = xs_dict_append(headers, "Content-Security-Policy", "script-src ;");
+
     if (p_state->use_fcgi)
     if (p_state->use_fcgi)
         xs_fcgi_response(f, status, headers, body, b_size, fcgi_id);
         xs_fcgi_response(f, status, headers, body, b_size, fcgi_id);
     else
     else