单页 Web 应用程序以及如何保证它们的安全

Airbnb、Pinterest 和 LinkedIn 等应用程序开发商展示了一种设计和构建现代 Web 应用程序的新方法。使用所谓的单页应用程序 ( SPA ) 框架,这些应用程序代表了下一代现代软件设计,提供比传统多页网站更快、更清晰的用户体验。

什么是单页应用?

SPA 由一个浏览器呈现的页面组成,通过应用程序编程接口 (API) 链接到各种后端数据源。SPA 的功能更像是移动应用程序,而不是多页 Web 应用程序,它们的崛起部分是由于移动应用程序体验的普及。

多页 Web 应用程序有多个页面,每个页面都包含自己的 HTML 代码。而且,虽然通过导航链接,但每个页面都是唯一的,并且在服务器端动态生成。多页面 Web 应用程序可能会合并前端代码以使页面更具交互性和动态性,但它们的用户界面 (UI) 并不主要使用 API 来提取应用程序数据。

多页应用程序的一个示例是 LAMP 堆栈,它是使用Apache Web 服务器在本地或云中运行的基于 Linux 的服务器,MySQL作为关系数据库系统,PHP作为客户端编程语言。对于每个单独的页面加载,每个页面通常直接与服务器和后端数据库交互。该框架现在代表了构建 Web 应用程序的传统方法。

相比之下,SPA 由一个单页 Web 应用程序组成,该应用程序经常通过多个 API 调用刷新自身。虽然这些 API 可以在类似于 LAMP 堆栈的后端实现,但后端越来越多地实现为一组不断变化的微服务,这些微服务可能位于一个或多个云平台上。SPA 的出现和流行也与无服务器应用程序和云原生服务的增长相关。此外,SPA 主要是使用更现代的客户端开发框架构建的,例如 React、Vue 和 Angular。

SPA安全

SPA 的架构为黑客提供了可利用的新漏洞,因为攻击面从应用程序的客户端层转移到 API,作为刷新 SPA 的数据传输层。

对于多页面 Web 应用程序,安全团队只需保护应用程序的各个页面即可保护其敏感的客户数据。Web 应用防火墙(WAF)等传统 Web 安全工具无法保护 SPA,因为它们没有解决在嵌入式 API 和后端微服务中发现的底层漏洞。例如,在 2019 年第一资本数据泄露事件中,黑客通过攻击第一资本的 WAF 超越了客户端层,并利用托管在 AWS 上的底层 API 驱动的云服务提取数据。

SPA 需要对其所有 API 进行适当的索引,类似于多页 Web 应用程序需要对其各个页面进行索引的方式。对于 SPA,漏洞始于 API。老练的黑客通常会从多级攻击开始,这些攻击通过面向客户端的应用程序进行,并寻找暴露在互联网上的未经身份验证、未经授权或未加密的 API,以破解和提取客户数据。如果第一步被证明是徒劳的,那么黑客通常会通过利用客户端层访问这些嵌入式 API 来获取凭据和令牌。

此外,错误配置的增加,尤其是在公共云中,需要一种全新的方法来为这些现代 Web 应用程序进行攻击面管理 ( ASM )。

开发人员可以无休止地快速修改 API,这一过程在使用GraphQL API 时比使用更成熟的 REST API时更加明显。同样,云存储桶和云原生应用程序可能会配置错误,即使它们最初在创建和部署时是安全的。当开发人员在更新功能时不小心让 API 未经身份验证或未经授权时,通常会出现未经身份验证的 API——这在 SPA 中很常见。事实上,SPA 的吸引力在于其与生俱来的灵活性,这也导致了其一些最大的安全缺陷。

保护 SPA

为了保持安全,拥有 SPA 的公司应迁移到运行持续、自动发现 SPA 的整个攻击面的安全程序,从面向客户端的应用程序的所有底层 API 的动态分析开始,一直到后端存储桶、无服务器云功能、容器和数据库服务等资源。

传统的 Web 应用程序安全工具不适合分析和保护 SPA。标准的 Web AppSec动态应用程序安全测试 (DAST) 解决方案旨在对多页面应用程序的页面进行爬网和索引以了解客户端层的攻击面,但它不是为处理探测的多方面攻击而构建的针对动态呈现的 API 驱动应用程序中的漏洞。相反,SPA 需要一种全栈应用程序安全方法。

缓解 SPA 面临的风险还需要一个持续的全栈 AppSec 解决方案。出于两个原因,这种方法是必要的。首先,SPA 不断变化,开发人员的更改和更新可能会暴露新的漏洞。其次,攻击向量一直在并行发展。时间点的解决方案注定会失败,而手动渗透测试的结果注定会过时。

另一个 SPA 安全最佳实践涉及使用攻击自动化,可以说是一个自动化的“红队”,可以模拟黑客并不断识别潜在漏洞。有了这个,全栈发现和修复解决方案将永远不会停止检查漏洞。它适用于传输敏感客户数据的面向客户端的 Web 应用程序和 API,以及云存储、数据库和微服务。

用于保护 SPA 的全栈 AppSec 解决方案应该能够提醒开发人员有关漏洞的信息。但警报永远不够。在发生数据泄露之前立即进行分类和修复的自动修复必须作为 DevSecOps 策略的一部分,以最大限度地减少对 CI/CD 管道的中断。

SPA 的最佳安全解决方案将在所有应用层上运行持续发现和漏洞评估。为了满足当今不断变化的 Web 应用程序开发和迁移到云的要求,组织需要跨应用程序堆栈的所有层(客户端、API 和云服务)提供攻击面管理。事实证明,全栈 AppSec 解决方案可以满足这些不断变化的安全需求。

相关实战:https://www.yunduoketang.com/article/zxjiaoyusaas.html
https://www.yunduoketang.com/article/zbkjiaoxuerj.html
https://www.yunduoketang.com/article/zxjiaoyuptgn.html
https://www.yunduoketang.com/article/djzaixianjiaoyupt.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值