1:使用预处理语句防止SQL注入
2:写入数据库的数据要进行特殊字符的转义,比如字符中带单引号和双引号需要在应用层转义,这样为了防止SQL注入
3:查询的错误信息不要返回给用户,将错误记录到日志。错误信息不要显示到应用中,这样用户会获取到数据库信息,这样就是不安全,我们要把错误屏蔽,定期排查错误看日志就可以了
注意:PHP端尽量使用PDO进行数据库相关的操作,PDO拥有对预处理语句很好的支持方法,Mysqli也有,但是可扩展性不如PDO,PDO支持扩展的库比较多,不仅仅支持Mysql,效率略高于PDO,但Mysqli仅仅支持Mysql,Mysql函数库在新版本中已经趋向于淘汰,所以不建议使用,而且它没有很好的支持预处理的方法
4:定期做数据备份
5:不给查询用户root权限,合理分配权限;比如服务器有好多应用,不能每个都给root权限
6:关闭远程访问数据库权限,这样有可能会被破解,就不安全了
7:修改root口令,不用默认口令,要复杂,不能轻易被猜到
8:删除多余的用户
9:改变root用户的名称,改一些别人不容易猜到的
10:限制一般用户浏览其他库;比如多个应用,每个应用建立独立的用户,不能访问其它库
11:限制用户对数据文件的访问权限,对文件做权限的限制,不仅仅每个用户限制访问mysql库的权限,而且要限制mysql存储数据的data目录权限
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/5701.html