[]
        
(Showing Draft Content)

安全防护自查清单

推荐阅读

技术决策者

项目经理

高级技术人员

初级技术人员

测试人员




type=info

安全对于企业应用来说至关重要,但安全性的提升通常意味着更高的维护成本。请根据项目特点,明确安全需求并执行相关检查。

本清单中包含的项目包含“推荐”和“建议”两级:

  • 【推荐】:适用于所有项目

  • 【建议】:适用于包含有敏感数据的项目,或开放给企业外部人员使用的项目

一、系统级(仅私有化部署)

  • 【推荐】优先选择Linux作为服务器的操作系统,避免因系统漏洞遭遇“勒索病毒”等工具

  • 【推荐】为生产环境中的所有服务器启用高强度密码,推荐启用RSA公钥加密登录方式

  • 【推荐】严格管理生产环境中的所有服务器的用户名、密码和公钥,原则上仅允许技术负责人和配置管理员持有密码和公钥。

  • 【推荐】启用防火墙,应用服务器对外仅开放80/443应用端口,22、3389和22345管理端口面向特定IP开放;数据库服务器和文件服务器不允许外网访问。 详细了解:如何设计生产环境的部署方案?

  • 【建议】除非小型应用,需架设nGinx反向代理,启用访问日志、黑白名单,视情况启用DDoS攻击防范、API访问限流等安全机制

  • 【建议】通过堡垒机(或与服务器在同一内网、仅开放SSH端口的另一台服务器)ssh到服务器进行操作,避免通过公网直接操作服务器

  • 【建议】定期检查堡垒机和生产环境中所有服务器的安全更新,升级系统、组件、软件以修复漏洞

二、服务级

  • 【推荐】启用HTTPS,推荐在nginx上配置SSL证书,实现HTTPS访问。对于不使用nGinx的小型应用,也可以在活字格服务管理控制台上配置SSL证书,在发布应用时勾选“启用SSL(HTTPS)”。

  • 【建议】在管理控制台【设置】→【安全设置】页面,设置合理的跨域访问策略(如deny),除非必要,不要将白名单设置为*

  • 【建议】在管理控制台【设置】→【安全设置】页面,定期重置已发放给第三方的客户端授权的秘钥

  • 【建议】建立密码管理制度,以下内容供参考

    • 不允许使用默认密码:在管理控制台【设置】→【账号安全】页面,启用“如果用户没有修改过初始密码,则在其登录应用时,强制用户修改密码”

    • 必须使用高强度密码:在管理控制台【设置】→【账号安全】页面,启用“使用高强度密码”

    • 输入5次错误的密码后锁定用户:在管理控制台【设置】→【账号安全】页面,设置密码输入错误后锁定用户的标准为“5次”

    • 两步验证:在管理控制台【设置】→【账号安全】页面,设置合理的两步验证策略(如强制启用)

    • 定期重置Administrator等拥有【Administrator】管理员组权限用户的密码:在管理控制台【设置】→【内建用户】页面,重置密码

    • 管理员组在受理权限申请时,仅给授予其必要的权限组,不要多给权限。在开发时,在为权限高、需要重点关注的组命名时,推荐以!!!作为前缀,以示提醒

三、应用级

  • 【推荐】在设计器的【文件】→【设置】→【应用程序设置】中确保已勾选“不允许匿名访问数据库”、“不允许使用JS API查询/操作数据库”、“不允许JS API发送邮件”

  • 【推荐】不要提供匿名的WebAPI(服务端命令)、页面和服务端通知

  • 【推荐】【执行SQL】命令中的“SQL语句”中不要拼接来自用户输入的内容,如传入参数,避免注入攻击

  • 【建议】基于RBAC的原则,合理设计权限组的粒度,过细的话,授权操作的工作量更大,过粗的话,容易出现给用户授予的权限过大的情况,使用【角色的权限关系】做权限继承可以有效降低权限管理的复杂度。

  • 【建议】可通过页面权限+单元格权限,精确控制每个角色的人可以操作的页面或按钮

  • 【建议】对于敏感数据所在的表(如客户信息、订单等),在设计器的【文件】→【设置】→【应用程序设置】→【设置审计日志】中启用设计日志,并且定期检查,确保没有预期外的用户访问这些数据。

如何通过安全检测

  • 首先,请按照本清单做好自查,尤其是标注为“推荐”的项目。特别是如下项目:

    • 选择Linux作为服务器的操作系统

    • 启用防火墙,应用服务器对外仅开放80/443应用端口,22、3389和22345管理端口面向特定IP开放;数据库服务器和文件服务器不允许外网访问。

    • 启用HTTPS,推荐在nginx上配置SSL证书,实现HTTPS访问。对于不使用nGinx的小型应用,也可以在活字格服务管理控制台上配置SSL证书,在发布应用时勾选“启用SSL(HTTPS)”。

    • 在管理控制台【设置】→【安全设置】页面,设置合理的跨域访问策略(如deny),除非必要,不要将白名单设置为*

    • 在设计器的【文件】→【设置】→【应用程序设置】中确保已勾选“不允许匿名访问数据库”、“不允许使用JS API查询/操作数据库”、“不允许JS API发送邮件”

  • 遇到检查工具反馈的安全风险,很可能属于误报,可联系技术支持团队获得帮助。为了提高效率,请提前准备好以下内容:

    • 安全检测报告

    • 检测工具的版本

    • 被检测环境的操作系统版本(含应用服务器和数据库服务器)

    • 被检测环境的数据库版本

    • 被检测环境的活字格服务管理器版本

type=info

image 温馨提示

企业级低代码开发最佳实践是活字格官方面向进阶开发者推出的产品技术资源,旨在帮助对活字格基本功能有一定了解的开发者快速提升应用开发能力,保质保量做好企业级项目交付。如果您是初次接触活字格,这些内容可能会有些艰深难懂,这也是正常的。如果您有软件开发经验,推荐您学习《面向程序员的活字格入门课程》;否则,您也可以免费报名参加新手训练营直播课程或购买阅读《低代码开发实战:基于低代码平台构建企业级应用》(机械工业出版社),快速上手低代码开发。