Nginx下WordPress附件目录禁止运行PHP

WordPress的市场巨大,被各种坏人盯上,可能哪天你的程序附件目录里面就被上传了木马。通常被植入了PHP文件,然后远程执行,娃哈哈,懂的。如果把WordPress附件目录里面的PHP禁止运行,就不用担心了。

以下我们将介绍Wordpress Nginx 安全配置:禁用某些目录执行PHP,详细说明查看如下配置信息:

server {
        listen 80;
        server_name website.com;
    # Redirect non-www to www (website.com -> www.website.com)
        return 301 http://www.$server_name$request_uri;
}
 
server {
        listen 80;
        server_name www.website.com;
        access_log /var/www/website.com/logs/access.log main;
        error_log /var/www/website.com/logs/error.log warn;
    root /var/www/website.com/public/htdocs;
    index index.html index.htm index.php;
 
    # 日志不记录 robots.txt
        location = /robots.txt {
            log_not_found off;
            access_log off;
        }
 
        # 如果没有 favicon 文件则退出并返回 204 (没有错误内容)
        location ~* /favicon\.ico$ {
            try_files $uri =204;
            expires max;
            log_not_found off;
            access_log off;
        }
 
        # 以下格式文件日志不需要记录
        location ~* \.(js|css|png|jpg|jpeg|bmp|gif|ico)$ {
            expires max;
            log_not_found off;
        access_log off;
        # Send the all shebang in one fell swoop
        tcp_nodelay off;
        # Set the OS file cache
        open_file_cache max=1000 inactive=120s;
        open_file_cache_valid 45s;
        open_file_cache_min_uses 2;
        open_file_cache_errors off;
        }
 
        # http://wiki.nginx.org/WordPress
        # 设置静态地址必须要添加的配置
        # 如果你后台添加了固定链接,则需要添加以下配置
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
 
    # 禁止访问 htaccess 文件
        location ~ /\. {
            deny  all;
        }
 
        # 禁止访问 /wp-content/ 目录的 php 格式文件 (包含子目录)
        location ~* ^/wp-content/.*.(php|phps)$ {
            deny all;
        }
 
        # 允许内部分  wp-includes 目录的 .php 文件 
        location ~* ^/wp-includes/.*\.(php|phps)$ {
            internal;
        }
 
    # 禁止访问 wp-config.php 文件
        location = /wp-config.php {
            deny all;
        }
 
        # 禁止访问 /wp-content/ 目录的以下文件格式 (包含子目录)
        location ~* ^/wp-content/.*.(txt|md|exe)$ {
            deny all;
        }
 
    # 处理 .php 文件
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include /etc/nginx/fastcgi_params;
            fastcgi_connect_timeout 180s;
            fastcgi_send_timeout 180s;
            fastcgi_read_timeout 180s;
            fastcgi_intercept_errors on;
            fastcgi_max_temp_file_size 0;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_index index.php;
        }
 
        # wordpress 重写规则
        rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
        rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
 
        # Add trailing slash to */wp-admin requests
        rewrite /wp-admin$ $scheme://$host$uri/ permanent;
}

发表评论

Crypto logo

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus cursus rutrum est nec suscipit. Ut et ultrices nisi. Vivamus id nisl ligula. Nulla sed iaculis ipsum.

Contact

Company Name

Address