背景资料:
我是一个开发人员团队的一员,该团队运行一个存储和检索 HIPAA(医疗)数据的 Web 应用程序。最近,HIPAA 指南进行了更新,其中包含一项政策,该政策要求所有可识别的客户信息在“静止”(存储在数据库中且未被访问)时进行加密。
最初的问题
我们必须解决的第一个问题是确定双向加密数据的最佳方式,以确保数据在发生泄露时安全。
初始解决方案
我们想出的最快解决方案是在将数据插入数据库之前使用mcrypt对其进行加密。
新问题
我们正在开发的应用程序相当老旧(就像 Web 应用程序一样),并且使用了大量的过程编程以及严重依赖mysql_query函数来插入、更新、检索和删除数据。我们没有时间或奢侈地将我们的代码翻译成数据库抽象层。因此,实现此加密/解密系统的唯一方法是手动编辑所有 CRUD 查询以使用通过mcrypt加密的数据。这是非常低效且极易出错的。
我们提出的解决方案
我们决定解决问题的最快和最有效的方法是用我们自己的设计之一覆盖本机mysql_query函数。在我们的新函数中,我们将在将查询发送到服务器/返回结果集之前加密/解密数据值。
你们进来的地方
- 这是解决我们最初问题的最佳解决方案吗?
- 您如何覆盖现有的核心 PHP 函数?