1

我有一个屏幕共享应用程序,其中所有敏感数据都被屏蔽了。在某些情况下,客户将敏感数据(例如 SSN)输入到非屏蔽字段中,从而直接影响我们的解决方案。

有没有一种方法可以检测到该人正在键入 SSN 或任何敏感数据,而无需在客户端访问数据库(或任何其他服务器端信息)。

例如,考虑一个带有 SSN 和地址字段的表单。如何避免在地址字段中显示错误输入的 SSN?

SSN
Address:888-9999-0988

编辑

我现在的方法是将所有模式存储在客户端的属性文件中。例如,我的应用程序中的典型密码是 8 个字符,具有以下规则:

^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]‌​{8,}$

我将把这个正则表达式存储在客户端。一旦用户开始输入,我将检查他输入的是密码还是用户名。同样,我可以将电话号码分解为国家/地区代码格式,并且也可以使用正则表达式。但由于 SSN 是纯 9 位随机数,我被卡住了。

通过从 DOM 中提取字段名称,我可以获得光标的确切位置和用户正在输入数据的字段名称。通过使用它们支持的数据格式类型,我可以大致了解用户是否正在输入所需的数据或其他内容。如果我错了请纠正我

9 月:14th-2016 由于我在浏览器中运行屏幕共享解决方案,它将被网站用作可插入组件。因此要求他们重新构建页面并不容易。以下是我根据您的意见最终确定的方法。我将有一个文件文件,其中存储了所有模式。1.信用相关的信息都有一定的模式,所以不会有问题 2.密码也有一些规则或模式,所以这些也可以检查

为避免数据泄露,我将在用户输入数据之前显示通用消息,例如 watsapp 显示“用户正在输入”。一旦用户选项卡或进入下一个字段,则在内联模式验证后只会显示数据。

这里唯一剩下的就是如何检测那些没有任何模式的字段,如 SSN、电话号码等。希望我们也能有一些解决方案。

问候哈利

4

1 回答 1

2

简而言之,你不能。您如何按值和格式区分敏感数据?例如,您如何及时区分 SSN 212-73-6500 和纽约市电话号码 212-736-5000 以消除敏感信息?同样,在显示密码的任何字符之前,您如何检测用户正在地址字段中输入密码?

您说您无法访问数据库以将输入的数据与已知值匹配。除非您可以在输入敏感数据之前对用户进行一些区分,否则您无法在信息论下检测到错误。您无法将密码与名称或其他字母数字输入区分开来。

我看到了一种可能性:在清除显示之前将所有数据视为敏感数据。每个输入字段都会被屏蔽,直到您确认它不能包含敏感信息。

不幸的是,我不知道您可以从客户端严格执行此操作。同样,您如何区分错误输入的 SSN(遗漏或双倍数字)与电话号码?如何从密码中分辨字母地址?

我相信,要解决这个问题,您需要对您请求的敏感输入施加一些限制。密码不能看起来像任何其他字段。您在页面上尽可能多地分隔易混淆的字段......其中一些可能会影响输入信息的顺畅流动。


编辑回复

没错:您可以设置一系列识别规则并区分各种类型的输入。但是,您仍然存在一些先天问题,因为您无法区分某些类型的输入,直到为时已晚,例如上面的电话或 SSN 歧义,或者从名称或地址告诉密码(某些地址以纯字母字符开头)。

您能否通过严格的分区来满足安全要求?例如,将所有敏感信息放在一个页面上,将所有显示的信息放在另一个页面上。我正在寻找一种方法来强制用户知道某些信息是敏感的。

另外,您是否必须将其配置为国际使用?安全要求因文化和国家而异。在设计此应用程序时请记住这一点。

于 2016-09-13T00:03:50.550 回答