diff --git a/backend/server.js b/backend/server.js index 66da5e8..18f52ae 100644 --- a/backend/server.js +++ b/backend/server.js @@ -45,11 +45,12 @@ const corsOptions = { } } - // 允许来自白名单中的域名 - if (!origin || allowedOrigins.includes(origin)) { + // 严格白名单模式:只允许白名单中的域名 + if (origin && allowedOrigins.includes(origin)) { callback(null, true); } else { - console.warn(`[CORS] 拒绝来自未授权来源的请求: ${origin}`); + // 拒绝不在白名单中的请求(包括没有Origin头的请求) + console.warn(`[CORS] 拒绝来自未授权来源的请求: ${origin || '(无Origin头)'}`); callback(new Error('CORS策略不允许来自该来源的访问')); } } diff --git a/install.sh b/install.sh index 31fdd03..ab243e4 100644 --- a/install.sh +++ b/install.sh @@ -2340,6 +2340,27 @@ server { # 文件上传大小限制(10GB) client_max_body_size 10G; + # ========== 安全响应头 ========== + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-XSS-Protection "1; mode=block" always; + add_header Referrer-Policy "no-referrer-when-downgrade" always; + + # 隐藏Nginx版本号 + server_tokens off; + + # ========== 禁止访问隐藏文件 ========== + location ~ /\\. { + deny all; + return 404; + } + + # ========== 禁止访问敏感文件 ========== + location ~ \\.(env|git|config|key|pem|crt|sql|bak|backup|old|log)$ { + deny all; + return 404; + } + # 前端静态文件 location / { root ${PROJECT_DIR}/frontend; @@ -2597,6 +2618,27 @@ server { # 文件上传大小限制(10GB) client_max_body_size 10G; + # ========== 安全响应头 ========== + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-XSS-Protection "1; mode=block" always; + add_header Referrer-Policy "no-referrer-when-downgrade" always; + + # 隐藏Nginx版本号 + server_tokens off; + + # ========== 禁止访问隐藏文件 ========== + location ~ /\\. { + deny all; + return 404; + } + + # ========== 禁止访问敏感文件 ========== + location ~ \\.(env|git|config|key|pem|crt|sql|bak|backup|old|log)$ { + deny all; + return 404; + } + # 前端静态文件 location / { root ${PROJECT_DIR}/frontend; @@ -2708,6 +2750,28 @@ server { # 文件上传大小限制(10GB) client_max_body_size 10G; + # ========== 安全响应头 ========== + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-XSS-Protection "1; mode=block" always; + add_header Referrer-Policy "no-referrer-when-downgrade" always; + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; + + # 隐藏Nginx版本号 + server_tokens off; + + # ========== 禁止访问隐藏文件 ========== + location ~ /\\. { + deny all; + return 404; + } + + # ========== 禁止访问敏感文件 ========== + location ~ \\.(env|git|config|key|pem|crt|sql|bak|backup|old|log)$ { + deny all; + return 404; + } + # 前端静态文件 location / { root ${PROJECT_DIR}/frontend;