安全插件
开启安全插件
打开“应用服务管理-企业门户-更多-网关”,打开插件配置页面,如下图所示
在“企业门户V2”中配置 kong 的插件,在“所有应用服务”中配置 kong2 的插件。
选择“所有应用服务”后,选择安全插件 crypto-request 插件,开启插件并设置插件参数
插件参数说明
参数 | 描述 |
---|---|
密钥 | 请求加密秘钥,16位的倍数 |
允许请求方式 | GET、POST、PUT、DELETE |
禁用空参服务路径 | API不带参数访问的服务路径 |
开启会话密钥 | 不开启所有秘钥一样,开启后密钥动态生成 |
html 资源自定义 header | name:value,多个用逗号隔开 |
css 资源自定义 header | name:value,多个用逗号隔开 |
js 资源自定义 header | name:value,多个用逗号隔开 |
允许跨域网站 | 跨域请求允许的域,需要带协议,如 http://www.baidu.com |
配置方法转发 | 前端按照配置的 http method 统一转换成 post method 发送 http 请求到网关。网关收到请求后还原为原始的 http method 进行内网调用。主要是用来支持某些安全检查只允许 get post http 请求的场景 |
CSRF 检查 | 开启跨站请求伪造属性,可以监测用户的异常行为,例如短时间内大量提交请求等,可以及时发现潜在的 CSRF 攻击 |
要检查返回内容的请求 URI | 设置要检查返回内容的请求 URI 例如:/opencart/=Invalid Route)_(Uncaught Exception: |
检查返回错误 header | 检查返回错误 header |
统一异常编码 | 特征码匹配,主要用于 500 错误出堆栈的场景 |
强制加密请求路径 | 强制加密请求路径,严格加密 |
onlyAjaxRequestApi | 只允许 ajax 请求 api,不允许浏览器地址栏访问或 postman 等工具访问 |
白名单 | 设置各种第三方的 dashboard admin 之类,多个以逗号隔开,例如 /cross_domain_proxy/,/opensearch/,/adminer/,/kapis/, |
允许来源网站 | 允许的 Referer,当浏览器向 web 服务器发送请求的时候,一般会带上 Referer,告诉服务器我是从哪个页面链接过来的,此选项设置允许访问的链接,需要带协议,例如 http://www.domain.com/ |
是否禁用 sourcemap | 开启 SourceMap,可以在浏览器内,直接看到源码,而不是编译、压缩、混淆后的部署产物 |
开启 api 防重放 | API 接口都是提供给第三方服务/客户端调用,所有请求地址以及请求参数都是暴露给用户的,每次请求一个 Http 请求,用户都可以通过 F12,或者抓包工具 fd 看到请求的 UR L链接,然后 copy 出来。这样是非常不安全的,有人可能会恶意的刷我们的接口,通过开启 api 防重放属性,防止重复请求的目的 |
是否禁用 jsonp | 禁用 jsonp 能力,防止攻击。 |
let_cookie_http_only | 可以防止程序获取 cookie,如果设置为 true,通过 js 等将无法读取到 cookie,能有效的防止 XSS 攻击。将相关信息响应时存储在 Cookie 中,而客户端脚本无法访问,每次请求时,则将自动携带所有信息到服务器 将 cookie 设置成 HttpOnly 是为了防止 XSS 攻击,窃取 cookie 内容,这样就增加了 cookie 的安全性,response.addHeader("Set-Cookie", "timeout=30; Path=/test; HttpOnly") |
Cookie 上加 secure | 可防止信息在传递的过程中被监听捕获后导致信息泄露,如果设置为 true,可以限制只有通过 https 访问时,才会将浏览器保存的 cookie 传递到服务端,如果通过 http 访问,不会传递 cookie。 |
查看网关插件
插件注册完成后,在应用的监控里可以查看
打开插件管理
在插件列表中可查看已注册完成的加密插件