ObscureInfo():在访问表单控件中隐藏敏感信息
ObscureInfo():在访问表单控件中隐藏敏感信息
使用此易于实施的功能,避免过肩攻击并防止 Microsoft Access 表单中的意外泄露。
经过 迈克·沃尔夫 (在推特上连接: @NoLongerSet )
为了防止过肩攻击(或在演示或屏幕截图期间意外泄露),最好在 Access 表单中隐藏敏感信息的内容。
这 模糊信息() 函数就是这样做的。当控件没有焦点时,该函数设置背景颜色以匹配前景色(即文本颜色)。当控件获得焦点时,背景颜色设置为白色。
该代码易于应用于多个控件并且是 与轻量级形式兼容 (即,您可以直接从属性表事件调用该函数,而无需使用模块后面的表单代码)。
编码
' ------------------------------------------------- ---------------
' 过程 : ObscureInfo
' 日期:2009 年 9 月 21 日
' 作者:迈克·沃尔夫
' 来源:https://nolongerset.com/obscureinfo/
' 用途:用于隐藏敏感字段中的数据(例如,BirthDate、PhoneNum、SSN)
' 用法:Ctl OnEnter 属性:=ObscureInfo(False, Form.ActiveControl)
' Ctl OnExit 属性:=ObscureInfo(True, Form.ActiveControl)
' 表单当前属性:=ObscureInfo(True, [BirthDate], [HomePhone], [SSN])
' 表单加载属性:=ObscureInfo(True, [BirthDate], [HomePhone], [SSN])
' ------------------------------------------------- ---------------
函数 ObscureInfo(HideIt 作为布尔值,ParamArray Ctls() 作为变体)
将 Ctl 调暗为变体
对于 Ctls 中的每个 Ctl
如果隐藏然后
If IsNull(Ctl.Value) Then
Ctl.BackColor = vbWhite
别的
Ctl.BackColor = Ctl.ForeColor
万一
别的
Ctl.BackColor = vbWhite
万一
下一个控制
结束功能
用法:一步一步
在表单设计视图中应用更改的最简单方法是使用属性表事件。
这是分步过程:
- 转到表单设计视图
- 选择所有要隐藏的控件([Ctrl]/[Shift] + 单击)
- 设置 输入时 财产:
=ObscureInfo(假,Form.ActiveControl)
- 设置 退出时 财产:
=ObscureInfo(True, Form.ActiveControl)
- 选择表单本身
- 设置 在电流 财产:
=ObscureInfo(真,[tbBirthDate],[tbSSN])
- 设置 负载 财产:
=ObscureInfo(真,[tbBirthDate],[tbSSN])
对于第 6 步,您列出 控件名称 (不是 字段名称 ) 您希望在表单打开时最初被遮挡的每个控件。
在行动
只有当控件包含数据时,控件才会变得模糊。因此,对于新记录,所有控件都有白色背景。
当我们切换到填充记录时,敏感信息被涂黑:
当我们进入其中一个敏感字段时,背景变为白色,我们可以看到它的内容:
The “Soc Sec Num” text box is active. If you look closely, you can see the cursor before the “123–45–6789” text.
当我们进入下一个敏感字段时,前一个字段变黑并且新字段的内容变得可见:
Tabbing from “Soc Sec Num” to “Home Phone” obscures the Soc Sec Num field, selects the text in the Home Phone field, and sets the back color to white so we can see its contents.
样本数据库
代码不多,但如果你想看到它的实际效果,你可以下载我用于上述截图的数据库:
最初发表于 NoLongerSet.com
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明