这个问题主要防止内部技术人员对数据库直接操作,大家有什么实现的方法吗?
对数据库中的每一行敏感数据设有独有的数字签名,每一次修改数据库我们都在底层进行签名校验。未经授权的数据库修改无法通过校验,程序进行终止操作并冻结账户并弹出警示。此安全模块防范黑客或内部技术人员绕过后台管理模块,直接修改底层数据库的非法行为。
使用的是PHP+MYSQL,我现在想到是思路是用数据库触发器。但触发器如何传参数呢?
感谢几个人的回答,但现在为止还没有答案,peixinchen的回答
peixinchen 52 6小时前 回答 · 6小时前 更新
规章制度的问题就用规章制度的方式解决,不要想用技术手段来防,性价比太低。当然基本的制度要做到:
1. 数据库权限分级管理,root权限别滥用;
2. 运维系统分级,root权限别滥用。但这些都防不住管理员进行数据更改,这种时候还是“惩罚措施”最有效。
PS:如果是内部有人恶意破坏,如何进行定位追查,那就是另外的问题了。
我考虑的是,假如是银行的数据系统,一个数据库管理员能直接修改数据库的吗?你能靠制度来管?
现在我就是想看有没有技术的方法实现只能通过程序来写入修改数据。
进过各位的讨论,好像明白了一些,综合沙渺与peixinchen所说,重新思考中……
迷茫2017-04-10 15:06:53
数据库审查模式也只能是时候审查,还是想做事前的技术防控,我考虑的是,假如是银行的数据系统,一个数据库管理员能直接修改数据库的吗?你能靠制度来管?
现在我就是想看有没有技术的方法实现只能通过程序来写入修改数据。
这就不是说信不信任技术员的问题
不是说不给技术查询和修改数据库,查询修改要通过我的PHP程序来实现,我好进行权限控制和写日志文件。比如说数据库有没有这样的一个功能,触发写入的时候,需要一个密钥才会执行,这个密钥是从程序传参进来的,有密钥则执行。