AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 344544
Accepted
Gunnar
Gunnar
Asked: 2025-01-04 18:11:25 +0800 CST2025-01-04 18:11:25 +0800 CST 2025-01-04 18:11:25 +0800 CST

如何从可公开访问的数据库中隔离敏感信息?

  • 772

我在一家私人医疗诊所工作,我们计划通过网页安装预约系统。预约系统是一个 PHP 应用程序,将其记录存储在 SQL 数据库中,该数据库可以位于 Web 服务器本身或远程服务器上。

由于使用情况,数据库将包含非常敏感的个人信息*,必须对公众保密。

强化对数据库的访问是一方面,但我猜测数据的一个重要入口点是 PHP 应用程序本身。

有没有推荐的方法将敏感数据与公共访问隔离?我可以想象一个如下的系统:

公共-> 通过可公开访问的服务器上的 PHP 应用程序访问 ->带有屏蔽敏感条目的 SQL 数据库<-通过强化 ssh 隧道同步->带有完整条目的私有 SQL 数据库<- 通过非公共服务器上的 PHP 应用程序访问 ->员工

这样,即使 PHP 应用程序将数据公开,敏感数据也会受到保护。此外,获取对公开 SQL 数据库本身的访问权限也并不那么重要。

两个数据库之间的映射将通过每个条目的唯一哈希码进行。实际上,这只是假名化,而不是匿名化。但它仍然是一个额外的安全层。

我只是不知道是否有现成的方法来实现这样的功能。基本上,SQL 数据库中任何带有屏蔽敏感条目的更改都应触发同步并随后进行屏蔽(因为来自公共领域的客户条目需要屏蔽)。

有没有更好的实现?我会非常高兴收到任何建议。


* 患者会在公共数据库中输入敏感数据,我们需要这些数据来完成我们的工作(我们需要姓名、联系方式和一些医疗信息)。但一旦输入这些数据,就应该将其转移到私人数据库,并在公共数据库中不可用。

但是,我还是不想对预制的 PHP 应用程序进行模糊测试。屏蔽公共数据库中的数据(例如,使用 *s)将使 PHP 应用程序正常工作

security
  • 1 1 个回答
  • 40 Views

1 个回答

  • Voted
  1. Best Answer
    pmdba
    2025-01-06T19:29:58+08:002025-01-06T19:29:58+08:00

    但一旦输入这些数据,它就应该被转移到私人数据库,并且在公共数据库中不可用。

    不!如果以任何方式按照第一个数据库中的描述处理数据,那么其中的一些记录将保留在事务日志或内存中,而“坏人”仍然能够获取它。

    这是一个比数据同步更大的基础设施问题。任何后端数据库都不应在互联网上直接“公开访问”,尤其是包含个人身份信息 (PII) 或个人健康信息 (PHI) 的数据库。您尝试做的事情肯定有法律方面的问题,受 HIPAA(在美国)或 GDPR(在欧洲)等法律的管辖,具体取决于医疗实践的地点和您的患者。您必须清楚哪些国家和地方法律将适用于此应用程序。

    考虑到这一点,您需要考虑使用以下技术:Web 应用程序防火墙、反向代理 Web 服务器、应用程序服务器、适当分段的网络(所有数据库资产都位于私有网络中)、适当加密的通信和数据存储、符合所有监管要求的应用程序和数据库软件、强化的操作系统、已发布的信息安全政策(详细说明您在保护患者数据方面的法律合规性)等。您选择的数据库应该能够根据用户的角色自动保护数据,在适当的情况下编辑信息并审核对需要法律保护的所有内容的访问。从安全性的角度来看,PHP 可能也不是您最好的编程语言选择。

    最重要的是,你几乎肯定不能只是从 GitHub 或类似的地方抓取一些 FOSS 软件,然后将其放在公开的服务器上,并期望它以任何方式保护 PII 数据和你的患者机密性。根据你的描述(存储联系信息和一些医疗数据),这类事情需要专业的设计和实施,包括法律审查和专门从事信息保护的独立审计,否则即使在你的数据没有被盗的不太可能发生的情况下,你的医疗机构也很容易面临政府罚款和诉讼。在某些司法管辖区,对处理不当的患者数据甚至可能承担刑事责任。与尝试在内部建立(和维护)自己的技术堆栈相比,与已经提供这些保护的外部服务签订合同几乎肯定会减少麻烦(和风险)。

    • 2

相关问题

  • SA 帐户和其他已知帐户名称对安全构成了哪些安全威胁?

  • 在 Oracle 中执行 PL/SQL 工作的应用程序开发人员的安全性

  • 基于用户的不同登录凭据

  • 存储过程可以防止 SQL 注入吗?

  • 保护数据库密码

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve