运行时安全
如何处理安全问题 Mendix 应用程序?
在了解如何处理安全性之前 Mendix 应用程序,重要的是要理解 Mendix 运行时架构.
在一个 Mendix 应用程序中,UI层实现在 Mendix 客户端作为在浏览器中运行的 JavaScript 库。对于原生移动应用程序,UI 层实现为在 React Native 应用程序中运行的 JavaScript 应用程序包。逻辑层和数据层在 Mendix 运行时( Mendix Runtime本身是用Java开发的,并在Java虚拟机上运行)。
内 Mendix 客户端,我们实施针对基于 JavaScript 的安全威胁(如跨站点脚本)的措施。这可以防止在同一浏览器中运行的其他网站和 Web 应用程序从客户端获取敏感信息 Mendix 应用程序(例如,cookies)。
更重要的是, Mendix 运行时解决了服务器端安全威胁,例如 SQL 注入和代码执行。默认情况下,来自任何客户端(包括 Mendix 客户端)被视为不受信任。
Mendix 应用程序开发人员在构建时无需考虑技术安全方面 Mendix 应用程序,因为平台将其作为服务来处理。当然,这并不意味着开发人员完全不必考虑安全性。应用程序级授权和访问权限需要由开发人员在应用程序模型中配置。这是因为大多数技术安全方面可以通用解决,而作为访问数据的先决条件的业务规则和要求对于每个应用程序和业务来说可能有所不同。
每个操作 Mendix 运行时被称为“动作”。 Mendix Runtime 提供许多预定义操作,例如触发和执行工作流以及评估业务规则。为了防止绕过技术安全机制,这些操作在系统的最低级别实现 Mendix 运行时,应用程序开发人员无法更改它们。
核心接口 Mendix 运行时(负责执行任何操作)具有一个安全矩阵,其中包含每个用户角色的所有可执行操作和数据访问规则。当查询发送到数据库时,数据访问规则在运行时应用。这可确保仅检索访问规则约束范围内的数据。
我的 Mendix 应用程序处理已知的安全威胁?
- Mendix 运行时和 Mendix 客户端拥有现成的安全措施来保护您的 Mendix 应用程序可抵御已知的安全威胁(包括但不限于 SQL 注入、XSS、CSRF 和身份验证失效)。这些安全措施每月都会接受外部渗透测试。 Mendix 运行时和 Mendix 客户端每天都会接受扫描,使用行业领导者提供的最新静态分析和软件组成分析技术,以确保不存在未缓解的漏洞。这意味着,每当 Mendix 应用程序仅使用 Mendix 应用程序开发环境,客户无需实施静态分析或软件组成分析措施。
我的吗 Mendix 应用程序是否符合 OWASP Top 10?
- Mendix Runtime 根据您的模型保护您的应用程序和数据,而 Mendix 云在基础设施层面处理安全性。 Mendix 运行时负责处理大多数已知的安全威胁(OWASP 前 10 名 和 OWASP 低代码/无代码安全风险) 开箱即用,因为导致最常见的安全错误的功能已被从开发人员中抽象出来。
有关如何保持您的 Mendix 应用程序免受攻击,请参阅 如何实施应用程序安全的最佳实践 ,在 Mendix Studio Pro 使用方法.
应用程序级别的安全性是如何处理的?
为 Mendix 应用程序,您需要明确授予用户角色对表单、实体和微流的访问权限。最终用户必须拥有此角色才能访问它们。默认情况下,任何最终用户都无法访问任何内容。为了更轻松地创建原型和演示,有些安全级别所需的安全设置比生产系统所需的安全设置要少。
如何处理安全问题 Mendix 数据层?
数据安全在 Mendix 通过在实体上定义数据访问规则来处理。每个实体,您可以定义谁可以查看哪些数据以及谁可以创建或删除数据。
每次您的应用程序使用实体时,都会应用这些规则。这些规则将自动应用于在您的模型上完成的 XPath 检索。您可以在实体上定义 XPath 约束,这意味着您可以根据用户角色或组织定义访问规则。这可用于确保多租户应用程序中的严格数据分离。
密码如何存储在我的 Mendix 应用程序?
密码位于 Mendix 只能以散列格式存储。 Mendix 支持多种哈希算法。
如何 Mendix 使用 Web 服务、REST 服务和 API 来验证系统和服务接口?
系统和服务接口也必须在附加角色的上下文中进行身份验证。默认选项是通过用户名和密码,但也可以使用其他选项(如令牌)。API 的授权源自应用程序模型中定义的授权。
对于身份验证, Mendix 支持以下技术实现:
- HTTP认证
- Web 服务安全标准
- 自定义身份验证机制,包括 Java
这些选项使得应用身份传播成为可能。
我的 Mendix 应用程序支持多租户吗?
Mendix 为开发多租户应用程序提供现成的支持。 Mendix 共享相同的数据库、应用程序逻辑和用户界面。可以使用特定于租户的逻辑来扩展应用程序逻辑,并且可以按租户设置 UI 样式。
租户对象用于执行以下操作:
- 定义一个 租户感知对象模型 对于应用程序 - 使用 XPath 定义配置对域对象的租户级别访问,这限制了最终用户所属公司对这些应用程序对象实例的访问
- 确定 特定租户微流程 并配置访问权限以实现租户级应用和流程逻辑
- 入学申请 租户特定样式 通过使 CSS 依赖于 MxID 中定义的公司来实现 UI
还可以使用部门、国家和站点等标识符在应用程序中自定义租户。
我的账户可以使用哪种加密方式 Mendix 应用程序?
除了默认的静态和传输加密外,用户还可以实现列加密或上传文件加密。列和上传文件加密可通过 加密 来自的模块 Mendix 市场使用 AES 加密。
应用程序用户的身份和访问管理功能(例如单点登录和用户角色分配)在下文中描述 控制应用程序用户风险.