Cat*_*ANU 5 php mysql encryption aes
“敏感”数据应如何存储在 MySQL 数据库中?
1) 我应该更关注 MySQL 数据库的安全性并将数据存储为纯文本吗?
2)我应该加密数据吗?
就我而言,“敏感”数据是个人支付的款项。
谢谢
它是两者的混合体。两个现有的答案(在我写这篇文章时/sf/answers/750287821/和/sf/answers/750292161/)是有效的 - 你需要查看大约 5 种方法我能想到的可能的攻击
但没有提到三个要素:
对于你问题的第二部分:
使用 MySQL 加密/解密功能将阻止有权访问原始数据的人,但不会阻止 MITM 或 SQL 注入,甚至阻止用于传输的 CSV 转储。
因此,IMO(这只是我的观点和我所做的方式)是使用 PHP 加密并通过网络捕获加密数据,因为这会停止所有捕获数据的方法,并且 CSV 转储将被“扰乱” ”。
如果您这样做,您也可以使用 varbinary / blob 类型,因为它可以阻止您意外地尝试在 phpMyAdmin 中读取/编辑。另外,名义上可能会节省一些字节(尽管这取决于索引和其他东西 - 所以仅此一点并不是一个获胜的论点)。
现在是缺点:搜索和排序。您索引或搜索的任何内容,如果加密,将仅匹配填充到正确长度的整个、精确、区分大小写的字符串(通常搜索不区分大小写,并且您可以使用 LIKE 进行部分搜索)。如果你想 ORDER BY 那么你需要原始字符串。因此在设计结构时请记住。
希望有帮助。