Nginx Security Hardening and Rules

c0nw0nk nginx-forum at nginx.us
Sun Oct 19 17:47:53 UTC 2014


I have come across that same page before the one that is interesting me
right now is based of mex's comment on Security in header responses.

https://gist.github.com/plentz/6737338

# config to don't allow the browser to render the page inside an frame or
iframe
# and avoid clickjacking http://en.wikipedia.org/wiki/Clickjacking
# if you need to allow [i]frames, you can use SAMEORIGIN or even set an uri
with ALLOW-FROM uri
# https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options

add_header X-Frame-Options SAMEORIGIN;
 
# when serving user-supplied content, include a X-Content-Type-Options:
nosniff header along with the Content-Type: header,
# to disable content-type sniffing on some browsers.
# https://www.owasp.org/index.php/List_of_useful_HTTP_headers
# currently suppoorted in IE > 8
http://blogs.msdn.com/b/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx
# http://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx
# 'soon' on Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=471020

add_header X-Content-Type-Options nosniff;
 
# This header enables the Cross-site scripting (XSS) filter built into most
recent web browsers.
# It's usually enabled by default anyway, so the role of this header is to
re-enable the filter for
# this particular website if it was disabled by the user.
# https://www.owasp.org/index.php/List_of_useful_HTTP_headers

add_header X-XSS-Protection "1; mode=block";
 
# with Content Security Policy (CSP) enabled(and a browser that supports
it(http://caniuse.com/#feat=contentsecuritypolicy),
# you can tell the browser that it can only download content from the
domains you explicitly allow
# http://www.html5rocks.com/en/tutorials/security/content-security-policy/
# https://www.owasp.org/index.php/Content_Security_Policy
# I need to change our application code so we can increase security by
disabling 'unsafe-inline' 'unsafe-eval'
# directives for css and js(if you have inline css or js, you will need to
keep it too).
# more:
http://www.html5rocks.com/en/tutorials/security/content-security-policy/#inline-code-considered-harmful

add_header Content-Security-Policy "default-src 'self'; script-src 'self'
'unsafe-inline' 'unsafe-eval' https://ssl.google-analytics.com
https://assets.zendesk.com https://connect.facebook.net; img-src 'self'
https://ssl.google-analytics.com https://s-static.ak.facebook.com
https://assets.zendesk.com; style-src 'self' 'unsafe-inline'
https://fonts.googleapis.com https://assets.zendesk.com; font-src 'self'
https://themes.googleusercontent.com; frame-src https://assets.zendesk.com
https://www.facebook.com https://s-static.ak.facebook.com
https://tautt.zendesk.com; object-src 'none'";

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,254125,254143#msg-254143



More information about the nginx mailing list