gpt4 book ai didi

php - 安全地存储数据

转载 作者:可可西里 更新时间:2023-11-01 06:59:04 26 4
gpt4 key购买 nike

我了解大部分安全存储数据的概念,包括将数据存储在仅允许来自应用程序的连接的单独服务器上、用于加密的 key 对等。但是,我仍然不了解如何分离服务器使它更加安全。

例如,假设我有一个经过加固和安全处理的网络服务器,它从用户输入中捕获数据进行存储。数据被加密并通过数据库查询或 Web 服务提交到数据库服务器。数据库服务器只允许来自网络服务器的连接,并以加密形式存储数据。因此,如果有人访问数据库,数据就毫无值(value)。

但是,如果有人访问 Web 服务器,他们将有权访问数据库以及加密算法和 key ,不是吗?既然如此,为什么还要将数据放在不同的服务器上,因为数据传输只是另一个潜在的攻击点?

有没有什么办法可以隐藏网络服务器上的连接信息和加密算法,这样如果它被破坏,就无法访​​问数据库服务器?混淆是不够的,我不认为。欢迎任何想法。

谢谢布莱恩

最佳答案

在人们设计安全性的方式中存在一定数量的神奇思维和民间传说,您是对的:将数据单独存储在不同的服务器上并不一定会使事情变得更安全,除非您已经完成了各种工作还有其他事情。

管理 key 是其中很重要的一部分;在 Web 应用程序的上下文中执行此操作是一个不同的主题,而且我不知道任何适用于 PHP 的强大解决方案。你说得很对——如果你的网络应用程序需要能够解密某些东西,它就需要访问 key ,如果网络应用程序被破坏,攻击者也可以访问 key 。

这就是为什么我倾向于使用公钥密码术,并将面向公众的网络服务器视为“只写”——即网络服务器使用公钥加密,存储在数据库中,并且永远无法解密;只有一个单独的进程(在公共(public)互联网上不可用)可以使用私钥来解密它。这样,您可以将信用卡详细信息存储在您的数据库中,并且只有对卡进行收费的应用程序才具有解密它的私钥;此应用程序在安全环境中运行,无法从互联网访问。

其次,存在多个级别的危害 - 例如,攻击者可能获得对您服务器文件系统的只读访问权限。如果该文件系统包含数据库,他们就可以获取数据文件,将其恢复到他们控制的服务器,然后使用解密 key 窃取您的私有(private)数据。如果数据库在单独的服务器上运行(无法从 Internet 访问),则此攻击路径变得不可能。

一种攻击途径让您敞开大门这一事实并不意味着您无法抵御其他攻击。

关于php - 安全地存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8715794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com