安全机制

框架中内置了安全插件 egg-security,提供了一些默认的安全实践,并且框架的安全插件是默认开启的,如果需要关闭其中一些安全防范,直接设置该项的 enable 属性为 false 即可。

开启或关闭安全策略

比如关闭 csrf:

config/config.default.js

exports.security = {
  csrf: false
};

match 和 ignore

使用 match 和 ignore 针对某些特定的请求进行筛选通过:

如果只想开启针对某一路径,则配置 match 选项,例如只针对 /example 开启 CSP:

exports.security = {
  csp: {
    match: '/example',
    policy: {
      //...
    },
  },
};

如果需要针对某一路径忽略某安全选项,则配置 ignore 选项,例如针对 /example 关闭 xframe,以便合作商户能够嵌入我们的页面:

exports.security = {
  csp: {
    ignore: '/example',
    xframe: {
      //...
    },
  },
};

可以写成一个函数的形式, 比如:

exports.security = {
  csrf: {
    // 判断是否需要 ignore 的方法,请求上下文 context 作为第一个参数
    ignore: ctx => isInnerIp(ctx.ip),
  },
}

CSRF

框架内部针对表单 POST 请求均会验证 CSRF 的值,因此我们在表单提交时,请带上 CSRF key 进行提交

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress