6.1. WEB 安全
CUBA 开发的应用程序安全吗?
CUBA 框架作为开发框架遵循了良好的安全实践,为 web 应用程序中最通常最易受攻击的部分做了自动防护。平台架构提供了安全编程模型,可以使得开发者专注于业务和程序逻辑。
- 用户界面(UI)状态和验证
Web 客户端是个服务器端的应用,应用中所有的状态、业务和 UI 逻辑都在服务端处理。不像其它客户端驱动的框架,CUBA 的 Web 客户端永远不会把内部逻辑暴露给浏览器,而浏览器是攻击者最容易攻击的地方。数据的验证也是在服务端处理,因此客户端方面的攻击不能绕过这些验证,在 REST API 也有同样的验证机制。
- Cross-Site Scripting (XSS) - 跨站脚本攻击
Web 客户端集成了对于跨站脚本攻击的防护措施。它会在数据在用户浏览器做渲染之前,先把数据转成 HTML 实体。
- Cross-Site Request Forgery (CSRF) 跨站请求伪造
所有在客户端和服务端之间的请求都包含了用户会话特定的 CSRF token。所有服务端跟客户端的通信都由 Vaadin 框架 来处理,所以不需要手动处理去包含 CSRF token。
- Web 服务
所有 Web 客户端的通信都通过一个支持 RPC 请求的 web 服务来做。项目中不会开放包含业务逻辑代码的 web 服务,因此减少了应用中的攻击入口点。
通用 REST API 接口也为登录用户或者匿名用户自动提供了角色、权限和其它的安全限制。
- SQL 注入
平台使用基于 EclipseLink 的 ORM 层,EclipseLink 已经做了针对 SQL 注入的防护。SQL 查询的参数是通过参数数组的形式传递给 JDBC 的,而不是跟查询语句做字符串拼接。