接口安全

除了身份验证和身份授权外,Fireboom还内置更多的安全机制,来保证接口安全。

详情可前往 设置 面板查看,主要分为:系统、安全、跨域、环境变量 。

系统

系统设置面板主要集成了服务地址相关的配置,其中比较核心的是: API服务监听Host、API服务监听端口、API内网地址。

监听地址

API服务监听地址,包含:Host和端口。

API服务监听HOST,默认值 localhost,只能被本机访问,以保证安全。API服务监听端口默认值9991

若想通过公网访问,有两种方法:

  • IP访问:Host 修改为 0.0.0.0,防火墙放开9991端口,访问 公网IP:9991端口

  • Nginx转发:通过nginx代理转发到 localhost:9991

内网访问

Fireboom不仅对外暴露API,而且还能作为数据代理层为钩子提供服务。Fireboom数据代理和Fireboom API监听端口相同,通过/internal 路由暴露。

API内网地址一般为:http://localhost:9991,因此,访问数据代理的路径一般为http://localhost:9991/internal。为保证数据代理接口的安全,该路由只能通过内网访问。

详情查看,钩子章节->内部调用

钩子地址

钩子地址在“状态栏”设置,默认监听 localhost:9992 ,为保证钩子服务安全,请关闭防火墙9992端口。

安全

安全下有4个设置项目,其中重定向URL参考 身份验证->授权码模式

GraphQL端点

GraphQL端点默认为 http://localhost:9991/app/main/graphql ,主要用于超图面板的内省和测试。为保证安全,生产环境下请关闭该端点。

CSRF保护

详情见 CSRF token 保护

允许HOST

不同域名通过 A 记录或者 CNAME 可以连接都同一个 IP 下。出于安全的考虑,有时需要限制API服务只能被特定域名或IP访问。

请求头中的HOST字段可以标识当前访问的主机,可根据该字段限制服务的访问地址。

例如,

  • 允许Host:设置为 http://example.com,表示只能通过该域名访问服务。

  • 允许Host:默认值为 * ,表示不限制。

环境变量

Fireboom支持用环境变量作为参数,有两个用途:

  • 保证隐私数据安全,例如:数据库密码、OIDC秘钥、API外网地址等。

  • 环境切换,例如开发环境和生产环境用不同的配置

前往 设置->环境变量 设置,默认情况下其底层对应根目录下的.env文件。

若要指定,请在启动参数中指定,详情见 #qi-yong-huan-jing-bian-liang

环境变量列表内置了很多变量:

  • prismaEngineVersion:维护prisma引擎的版本信息

  • prismaVersion:维护prisma的版本信息

  • ...

最后更新于