我有一个数据库表,我想阻止用户修改值/行。我怎么能做到这一点?
以下是一些标准:
例如:
我们说我的桌子有3行数据" A"," B"," C"。我的应用程序应该能够将值更改为" A"," B"," D",而不是我的用户(通过直接修改数据库)。另外,我希望如果我的应用程序将值更改为" A"," B"," D",则用户无法直接编辑该表以返回" A"," B"," C"。如果发生这种情况,应用程序将标记该表已被篡改。
答案 0 :(得分:0)
我能想到的就是某种MAC或签名架构
从您要保护的列中的数据派生哈希值,再加上一个秘密值来获取消息身份验证代码,并将其存储在另一列中...
当您想要测试完整性时,您的应用程序可以再次计算该MAC ...
问题:这个秘密需要存储在某个地方......
您还可以将此设置为数字签名架构,其中您的应用程序仅保存验证密钥,并且某处的服务将为您的应用程序添加时间戳哈希并为数据签名...这样,您只需保留密钥该服务真正的秘密...