JianghuJS项目WAF的配置使用

说明

江湖框架内置了两个应用级的 waf 插件,可以配合外部防火墙使用。

  • rate-limit: 请求限流
  • ip-block: ip 黑名单

开启插件

config/plugin.js 中,增加如下配置:

  1. 'use strict';
  2. const path = require('path');
  3. const eggJianghuDirResolve = require.resolve('@jianghujs/jianghu');
  4. const eggJianghuDir = path.join(eggJianghuDirResolve, '../');
  5. /** @type Egg.EggPlugin */
  6. module.exports = {
  7. rateLimit: {
  8. enable: true,
  9. path: path.join(eggJianghuDir, 'plugins/rate-limit')
  10. },
  11. ipBlock: {
  12. enable: true,
  13. path: path.join(eggJianghuDir, 'plugins/ip-block')
  14. }
  15. };

配置插件

  1. {
  2. jianghuConfig: {
  3. // WAF: 限流
  4. enableRateLimiter: false,
  5. rateLimiterDuration: 60000,
  6. rateLimiterMax: 100,
  7. rateLimiterIgnorePathPrefix: [ '/${appId}/resource', '/${appId}/page', '/${appId}/public', '${appId}/upload' ],
  8. rateLimiterWhitelist: [],
  9. // WAF: IP 黑名单
  10. enableIpBlock: false,
  11. ipBlocklist: [],
  12. ipBlocklistFilePath: '',
  13. }
  14. }
  • enableRateLimiter 开启后,将会限制指定时间内请求频率超过阈值的 ip 访问。
  • enableIpBlock 开启后,将会限制指定的黑名单,黑名单可以配置在 config 里,也可以指定一个外部的配置文件,格式为每行一个 ip。