How to secure my Woocommerce site in Nginx server ?
-
Hi lankadevs,
I'm new to nginx server i want to know how to secure my woocommerce site, i'm selling digital contents to my customers (photos, art works , etc), i want to protect digital content in the server side. please help me to achieve this task .
Thanks guys.
-
Add following content to /etc/nginx/sites-available/example.com file
#Deny access to wp-content folders for suspicious files location ~* ^/(wp-content)/(.*?)\.(zip|gz|tar|bzip2|7z)\$ { deny all; } location ~ ^/wp-content/uploads/sucuri { deny all; } location ~ ^/wp-content/updraft { deny all; }# Block nginx-help log from public viewing location ~* /wp-content/uploads/nginx-helper/ { deny all; } location ~ ^/(wp-includes/js/tinymce/wp-tinymce.php) { include /usr/local/nginx/conf/php.conf; }# Deny access to any files with a .php extension in the uploads directory # Works in sub-directory installs and also in multisite network location ~* /(?:uploads|files)/.*\.php\$ { deny all; }# Deny access to uploads that aren’t images, videos, music, etc. location ~* ^/wp-content/uploads/.*.(html|htm|shtml|php|js|swf|css)$ { deny all; }# Block PHP files in content directory. location ~* /wp-content/.*\.php\$ { deny all; }# Block PHP files in includes directory. location ~* /wp-includes/.*\.php\$ { deny all; }# Block PHP files in uploads, content, and includes directory. location ~* /(?:uploads|files|wp-content|wp-includes)/.*\.php\$ { deny all; }# Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS! location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)\$|^(\..*|Entries.*|Repository|Root|Tag|Template)\$|\.php_ { return 444; }#nocgi location ~* \.(pl|cgi|py|sh|lua)\$ { return 444; }#disallow location ~* (w00tw00t) { return 444; } location ~* /(\.|wp-config\.php|wp-config\.txt|changelog\.txt|readme\.txt|readme\.html|license\.txt) { deny all; }Add Following Headers to /etc/nginx/sites-available/example.com file
add_header X-Frame-Options SAMEORIGIN;add_header X-Content-Type-Options nosniff;add_header X-XSS-Protection "1; mode=block";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'";Source
-
Special Block for woocommerce digital content security
location ~ /woocommerce_uploads { deny all; } -
Thnaks yo very much @root , this is awesome