站点图标 江湖人士

OutSystems开发实践:客户端变量勿保存敏感信息

OutSystems最佳开发实践:客户端变量勿保存敏感信息,您在客户端变量中等待哪些信息?我们习惯于在OutSystems开发中使用本地变量(local variables),但是当我们谈论移动或响应式应用程序时,有一个非常有趣的变量类别:客户端变量(Client Variables)。

在OutSystems文档中,我们可以看到以下信息:

OutSystems开发实践:客户端变量勿保存敏感信息 3

客户端变量勿保存敏感信息

在以下情况下,客户端变量的值在同一环境中的不同应用之间共享:

您可以通过在以下情况下使用客户端变量来通过应用程序共享客户端变量的值:

当用户注销应用或平台自动注销用户时,客户端变量将重置为其默认值。但是,请勿使用客户端变量来存储敏感或机密信息。

好了,好了,现在我们来谈谈黑客攻击。

客户端变量存储在客户端(浏览器)上,通过此功能,我们可以在其中临时存储信息,并在应用程序的不同位置使用它们。

但。。。当您在这些变量中存储敏感信息时,这可能会成为应用程序中的安全漏洞。

假设您设计了应用程序并创建了一些客户端变量,例如,使用默认值。

最初,这似乎并不是什么危险的事情,毕竟只有登录到应用程序的用户才能访问此变量。

错!即使没有身份验证,黑客也可以访问此标准信息。

黑客攻击从足跡搜集阶段(数据收集或信息映射)开始。

Footprinting (also known as reconnaissance) is the technique used for gathering information about computer systems and the entities they belong to. To get this information, a hacker might use various tools and technologies. This information is very useful to a hacker who is trying to crack a whole system. wikipedia

在这个阶段,黑客将尝试收集尽可能多的有关目标的信息,包括访问文档、对目标域进行轻度扫描等。

在这个阶段,黑客可以查看客户端的变量,更糟糕的是,如果您定义了默认值,则可以查看默认值。

OutSystems开发实践:客户端变量勿保存敏感信息

在上图中,我们可以看到攻击者可以看到客户端变量的名称、使用它的模块,最后,它是否有默认值。

这样,攻击者就可以捕获敏感信息。

OutSystems开发实践

在开发 OutSystems 应用程序时,请遵循 OutSystems最佳开发实践。

“客户端变量”文档中的一点是永远不要在客户端变量中存储敏感信息。

使用变量存储非敏感数据,尽可能避免在应用程序中暴露任何敏感数据,这样攻击者在可能的攻击尝试中成功的机会就会降低。

如果您想在实践中查看某些内容,请转到您的学习环境(个人环境),创建一个应用程序并添加一些具有默认值的客户端变量。

在评论中或私下与我分享您的应用程序的链接,他们会在不知情的情况下告诉您使用默认值创建的变量的名称。

道德黑客行为的存在正是为了让安全专业人员能够提供研究和防御实践,以便我们可以拥有越来越安全的产品。

在本主题中,借助 OutSystems 文档,您在实践中了解了为什么不建议将敏感信息存储在客户端变量中,以及黑客如何访问这些信息并在以后使用它。

退出移动版