API安全加固 api-security-hardening

这个技能专注于REST API的安全加固,通过实现认证、速率限制、输入验证和安全头部等措施,保护API免受常见漏洞如注入攻击和CORS问题。适用于生产环境部署、安全审计和深度防御策略,关键词包括API安全、REST API、认证、速率限制、输入验证、安全头部和安全审计。

安全审计 0 次安装 0 次浏览 更新于 3/8/2026

name: api-security-hardening description: REST API安全加固,包括认证、速率限制、输入验证、安全头部。用于生产API、安全审计、深度防御、或遇到漏洞、注入攻击、CORS问题。

API 安全加固

通过多层安全措施保护 REST API 免受常见漏洞。

安全中间件栈 (Express)

const helmet = require('helmet');
const rateLimit = require('express-rate-limit');
const mongoSanitize = require('express-mongo-sanitize');
const xss = require('xss-clean');

app.use(helmet());
app.use(mongoSanitize());
app.use(xss());

app.use('/api/', rateLimit({
  windowMs: 15 * 60 * 1000,
  max: 100
}));

app.use('/api/auth/', rateLimit({
  windowMs: 15 * 60 * 1000,
  max: 5
}));

输入验证

const { body, validationResult } = require('express-validator');

app.post('/users',
  body('email').isEmail().normalizeEmail(),
  body('password').isLength({ min: 8 }).matches(/[A-Z]/).matches(/[0-9]/),
  body('name').trim().escape().isLength({ max: 100 }),
  (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }
    // 处理请求
  }
);

安全头部

app.use((req, res, next) => {
  res.setHeader('Content-Security-Policy', "default-src 'self'");
  res.setHeader('X-Frame-Options', 'DENY');
  res.setHeader('X-Content-Type-Options', 'nosniff');
  res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
  res.setHeader('X-XSS-Protection', '1; mode=block');
  next();
});

安全检查清单

  • [ ] 全程使用HTTPS
  • [ ] 所有受保护路由启用认证
  • [ ] 输入验证和清理
  • [ ] 启用速率限制
  • [ ] 配置安全头部
  • [ ] CORS 限制到允许的来源
  • [ ] 生产错误中不返回堆栈跟踪
  • [ ] 启用审计日志
  • [ ] 定期更新依赖项

额外实现

参见 references/python-nginx.md 获取:

  • Python FastAPI 安全中间件
  • 使用密码规则的Pydantic输入验证
  • Nginx SSL/TLS 和安全头部配置
  • HTTP 参数污染预防

切勿做

  • 未经验证信任用户输入
  • 在生产环境中返回详细错误
  • 在代码中存储秘密
  • 使用 GET 进行状态更改操作
  • 为方便而禁用安全