利用 Microsoft Office 环境的安全数据输入过程

Posted

技术标签:

【中文标题】利用 Microsoft Office 环境的安全数据输入过程【英文标题】:Secure data entry process utilizing Microsoft Office environment 【发布时间】:2020-09-21 20:22:28 【问题描述】:

我正在尝试找出一种使用 Microsoft Office 创建安全数据输入过程的方法(顺便说一下,不能使用 Azure)。显而易见的方法是使用 Microsoft Forms,但表格会太大,因为需要输入超过 150 个数据点。

我创建了一个 Excel 文件,该文件能够将响应加载到 SharePoint 列表。只要列表是公开的并且查看者具有贡献权限,这将起作用。这样做的缺点是数据不安全,任何人都可以查看列表。数据有电话号码、ssn、护照等。我试图通过创建一个流程来解决这个问题,该流程捕获任何新条目并将它们移动到我的个人私人 SharePoint 列表,然后删除原始条目。这很好用,但在与我的同事测试之后,似乎任何人都可以加入第一支团队并与该团队进行相同的流程以自己捕获数据。

有没有办法在内部接受任何人的数据,同时阻止他们访问数据?我能够使用 SharePoint、Teams、Power Automate 和 Access 来完成此任务。我对访问不太熟悉,但以前使用过它。我只是不确定它有多安全。

我很乐意根据需要提供更多信息。谢谢

【问题讨论】:

【参考方案1】:

您可以考虑使用 Access 表单,然后将表格驻留在 SharePoint 上。

然后您可以说基于查询的表单,并且在该查询中您可以提供(具有)包含在查询 where 子句中的用户名(因此删除或更改表单过滤器的用户只会提供一个视图他们自己的数据。)。但是,如果他们启动 Access(甚至是 Excel),这些用途最终可能会看到表中的所有行,而不是 Access 查询将数据限制为(一个用户)的对象。

不喜欢 Access 桌面?和大多数桌面软件一样?那么目标、设计和历史就是让数据编辑和查看变得容易。所以,就像你走进银行,排队等候一样?好吧,当您找到柜员时,他们会启动一个基于类似系统的访问表单并提取您的帐户信息。任何和所有的柜员都可以看到/查看和提取这些数据,因为这是软件应该做的,并且做得很好。 (获取任何客户数据)。

现在,翻转这个问题,创建一个用户网络银行系统,甚至是即时出纳员。现在问题倒退了。该软件的目标不是轻松编辑表格中的数据,而是只允许用户查看他们的数据。这是一个非常不同的问题。

非常(非常)需要注意的是,Web 开发工具不会突然出现或自动将数据限制为仅限一个用户。是您做出选择的开发人员。那么,如果我们可以按下按钮并将访问表单转换为网络?好吧,那么该访问表单将在生活中发挥作用。该工作是允许您编辑表中的所有数据。不仅仅是您的数据。

例如,您是否编写过只显示每个用户自己的数据的 Access 应用程序?我打赌不是!这很难做到。 (因为 Access 的根源是易于编辑数据)。如前所述,我不能强调 Web 开发工具做同样的事情。他们可以让您编辑数据。因此,数据的编辑是一个软件问题和开发问题。数据系统还是 Access 甚至 SQL 服务器?他们只是保存数据。您的软件必须决定只显示一个用户的数据。

现在网络系统经常只显示您的数据。但是这种非常常见的情况是由于 Web 系统的性质造成的,而且您不是银行出纳员或公司员工,而是该系统的消费者。现在每个消费者都与大多数软件系统自然做的事情(即从表中获取数据)100% 相反。

所以,我怎么强调这个概念都不为过。这个概念是网络软件和系统不会为您限制数据选择。您的开发人员工具必须具备这种能力,而且您还可以选择构建此类系统的方式。

出于多种原因,Web 系统可以更好地限制数据。

一个重要的原因?好吧,大多数时候您采用某种安全和登录系统。 因此,网站的某些部分现在受到您的登录系统的限制。 (嘿,也许你使用 Facebook 登录)。所以web系统有一个非常好的和广泛的系统来支持某种登录系统。对于桌面软件?没那么多。

但是即使有那种非常强大和类型的安全系统和登录系统?

开发人员仍然必须选择他们看到的数据。也许是路上的旅行推销员。因此,该网络系统的每个用户仍然必须能够编辑、查看和添加客户到该系统。这种常见的情况与编辑数据的典型 Access 表单并没有什么不同。

因此,只有某些类型的 Web 应用程序需要将数据限制为仅登录用户。但是,因为网络系统有那个“更好”的登录系统吗?然后,开发人员现在可以使用该登录来限制数据,比桌面软件开发工具通常提供的更容易(比如访问)。

因此,其中很大一部分将归结为使用的网络工具。如果您使用 Excel 或 Access 提取数据?然后,提取属于给定用户的 JUST 数据相当困难。而且您的软件从一开始就需要在设计时考虑到这些限制。

再次,冒着重蹈覆辙的风险?

这些工具不会为您设置数据限制。如果您只需要给定用户的安全数据,那么您只需采用一组允许记住这一概念的开发人员工具。这往往意味着您使用的工具默认情况下不允许用户直接编辑或链接到包含所有用户数据的大数据表。

这也是为什么说用 VB6 编写的程序,或者现在 vb.net 可以比 Access 更安全。 (因为默认情况下这些工具不提供从一开始就设计用于编辑所有数据行的表单)。因此,UI 不呈现默认表单和让用户能够编辑所有行的东西。因此,软件现在可以控制用户看到的记录,因为他们没有允许查看所有行的默认表单。

因此,编写只提供自己数据的软件变得更加实用。但同样,我不能强调这一点:

选择显示什么数据是软件开发人员的选择,而不是数据库或网络开发工具。

因此,按理说,您必须选择合适的工具,让您可以编写软件来限制您需要的庄园中的数据。

关于 SO 的一般性问题,如冰淇淋的味道或使用什么开发工具往往不受欢迎,这与解决您在 SO 上遇到的软件和代码问题的一般规则大相径庭。

但是,如果您来自说具有 VBA 技能的 Access?然后我建议采用 Visual Studio 的免费版本并使用 vb.net + asp.net 网络表单。 Web 表单已接近生命周期的尽头,但它们无疑是最好的选择、最少的努力(来自 Access),并且将为您提供一个强大的安全模型,您可以在其中限制每个用户的数据。

我不会回避磁带并尝试将这样的系统与办公工具拼凑在一起,因为它们并不是真正为您需要的那种类型的数据限制而设计的。因此,使用一些高质量的 Web 工具,如 Visual Studio(免费版很好)并使用 SQL Server(再次免费版)确实是这里的方法。如果您需要卡车来代替汽车,那么请选择合适的卡车,不要尝试使用汽车来运输货物,或者在这种情况下构建安全的 Web 数据库系统。

【讨论】:

感谢您的彻底回复!似乎办公工具不是解决此问题的最佳方法。谢天谢地,我确实有编程经验,所以我可以实现你以后的一些建议。我将保留此问题以供其他答案,但会在今天结束时标记为您已解决。

以上是关于利用 Microsoft Office 环境的安全数据输入过程的主要内容,如果未能解决你的问题,请参考以下文章

安全日记Microsoft Office 存在安全漏洞

你想要的安全 Microsoft 365 来守护

Microsoft office 2010激活问题

微软的Office办公软件 -Microsoft Office

Microsoft 365 解决方案:Office 365 Sensitivity Label+Azure Conditional Access打造 SharePoint 数据安全保障

Microsoft Graph 入门