Skip to content
On this page

koa-protect

简介

koa-protect 是一个用于增强 Koa 应用程序安全性的中间件,它提供了多种安全防护功能,包括防御 SQL 注入、XSS 攻击、暴力破解等常见的 Web 安全威胁。

安装

bash
npm install koa-protect

基本使用

javascript
const Koa = require('koa');
const protect = require('koa-protect');
const app = new Koa();

// 注册中间件
app.use(protect.koa.sqlInjection({
  body: true,
  loggerFunction: console.error
}));

app.use(protect.koa.xss({
  body: true,
  loggerFunction: console.error
}));

app.use(protect.koa.rateLimiter({
  windowMs: 15 * 60 * 1000, // 15 分钟
  max: 100 // 限制每个 IP 在 windowMs 内最多 100 个请求
}));

主要功能

  1. SQL 注入防护
  • 检测和阻止可疑的 SQL 查询字符串
  • 支持检查请求体、URL 参数和请求头
  1. XSS 攻击防护
  • 过滤恶意脚本代码
  • 支持自定义过滤规则
  1. 暴力破解防护
  • IP 请求频率限制
  • 可配置时间窗口和最大请求次数

配置选项

SQL 注入防护配置

javascript
{
  body: true, // 是否检查请求体
  params: true, // 是否检查 URL 参数
  headers: false, // 是否检查请求头
  loggerFunction: console.error // 日志记录函数
}

XSS 防护配置

javascript
{
  body: true, // 是否检查请求体
  loggerFunction: console.error, // 日志记录函数
  customRules: [] // 自定义过滤规则
}

暴力破解防护配置

javascript
{
  windowMs: 15 * 60 * 1000, // 时间窗口
  max: 100, // 最大请求次数
  message: '请求过于频繁,请稍后再试', // 错误提示信息
  statusCode: 429, // 返回状态码
  headers: true // 是否在响应头中包含限制信息
}

注意事项

  1. 建议将安全中间件放在其他中间件之前使用
  2. 根据实际需求调整配置参数,避免过度限制正常请求
  3. 合理配置日志记录,方便追踪潜在的安全威胁
  4. 定期更新中间件版本,获取最新的安全防护特性
  5. 与其他安全中间件(如 koa-helmet)配合使用,构建多层防护

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命