api接入的nginx安全基线配置核心是精准控制、严格过滤与隐蔽暴露:限制非必要http方法,强制校验authorization或x-api-key,ip白名单管控敏感路径,拒绝路径遍历与crlf注入,关闭服务器标识并启用结构化日志审计。

针对 API 接入的 Nginx 安全基线配置,核心是“精准控制 + 严格过滤 + 隐蔽暴露”,不能套用普通网站的宽松策略。API 通常承载业务关键逻辑、直连后端服务、调用频次高、参数敏感,因此需在入口层做细粒度防护。
限制请求方法与非法动词
绝大多数 RESTful API 只需要 GET、POST、PUT、DELETE 中的若干种,其余如 OPTIONS、TRACE、HEAD、CONNECT 等应明确拒绝,防止信息探测或 HTTP 方法滥用。
- 在
location块中添加判断:if ($request_method !~ ^(GET|POST|PUT|DELETE)$) { return 405; } - 避免在全局
http块中配置,应作用于具体 API 路径(如location /api/),防止影响健康检查或预检请求 - 若需保留 OPTIONS(如跨域预检),可单独放行:
if ($request_method = 'OPTIONS') { add_header Access-Control-Allow-Origin "*"; add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE"; add_header Access-Control-Allow-Headers "Content-Type, Authorization"; add_header Access-Control-Max-Age "1728000"; return 204; }
校验来源与身份凭证
API 不依赖 Cookie 或 Session,多使用 Token、API Key 或 JWT,Nginx 可在转发前做基础校验,减轻后端压力。
- 强制要求 Header 中携带认证字段:
if ($http_authorization = "") { return 401; }
或校验自定义 API Key:if ($http_x_api_key = "") { return 403; } - 结合
map指令实现白名单 Key 映射(比 if 更高效):map $http_x_api_key $api_valid { default 0; "abc123" 1; "def456" 1; }
然后在 location 中:if ($api_valid = 0) { return 403; } - 对敏感接口(如
/api/v1/admin/)额外限制 IP 段:location /api/v1/admin/ { allow 10.10.0.0/16; deny all; }
防御常见注入与路径遍历
API 请求常含动态路径和查询参数,需防范 CRLF 注入、路径穿越、恶意编码绕过等。
- 禁用危险 URI 解码变量:避免使用
$uri或$document_uri构造重定向或响应头;改用$request_uri(原始未解码字符串),防止 CRLF 注入 - 统一拒绝含可疑路径的请求:
if ($request_uri ~ "(?:\.\./|%2e%2e/|etc/passwd|/proc/self|\.git)") { return 403; } - 对上传类接口(如
/api/v1/upload)限制请求体大小:client_max_body_size 10M;并配合client_body_timeout 60s;
隐藏后端指纹并启用日志审计
API 网关角色下,Nginx 是第一道防线,不应泄露任何技术细节,且所有调用必须可追溯。
- 关闭服务器标识:
server_tokens off;(置于http块) - 隐藏后端响应头:
proxy_hide_header X-Powered-By;proxy_hide_header Server; - 启用结构化访问日志,记录关键字段:
log_format api_log '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_authorization" "$request_time"';access_log /var/log/nginx/api-access.log api_log; - 错误日志级别设为 warn 或 error,避免调试信息外泄:
error_log /var/log/nginx/api-error.log warn;
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











