JianghuJS项目WAF的配置使用
说明
江湖框架内置了两个应用级的 waf 插件,可以配合外部防火墙使用。
rate-limit
: 请求限流ip-block
: ip 黑名单
开启插件
在 config/plugin.js
中,增加如下配置:
'use strict';
const path = require('path');
const eggJianghuDirResolve = require.resolve('@jianghujs/jianghu');
const eggJianghuDir = path.join(eggJianghuDirResolve, '../');
/** @type Egg.EggPlugin */
module.exports = {
rateLimit: {
enable: true,
path: path.join(eggJianghuDir, 'plugins/rate-limit')
},
ipBlock: {
enable: true,
path: path.join(eggJianghuDir, 'plugins/ip-block')
}
};
配置插件
{
jianghuConfig: {
// WAF: 限流
enableRateLimiter: false,
rateLimiterDuration: 60000,
rateLimiterMax: 100,
rateLimiterIgnorePathPrefix: [ '/${appId}/resource', '/${appId}/page', '/${appId}/public', '${appId}/upload' ],
rateLimiterWhitelist: [],
// WAF: IP 黑名单
enableIpBlock: false,
ipBlocklist: [],
ipBlocklistFilePath: '',
}
}
- enableRateLimiter 开启后,将会限制指定时间内请求频率超过阈值的 ip 访问。
- enableIpBlock 开启后,将会限制指定的黑名单,黑名单可以配置在 config 里,也可以指定一个外部的配置文件,格式为每行一个 ip。