如何保证数据库里的信息安全?

没接触过网络安全,请教各位大佬,把用户信息放到数据库后怎么保证安全?

阅读 4.4k
4 个回答

题主你这个问题问得好大... 从以下几个方面着手吧:

  1. 数据库权限:连数据库不要老用root,给web应用单独开帐号,最小化权限

  2. 数据库密码:不要弱密码,尽量搞个随机生成的16位以上的密码

  3. web服务器:同数据库,密码尽量复杂化,尽量不要直接用root帐号,单独开帐号,只有在必须需要的时候才用root

  4. web应用:

    1. 尽量选一个好点的DB库或ORM库,使用参数化的SQL查询,不要直接把参数拼在SQL里面,防止SQL注入

    2. 用户(包括后台管理用户)的密码信息不要直接存储,应加盐hash后再存储

    3. 如果可以,尽量使用HTTPS

    4. 渲染HTML的时候,尽量使用编码后再输出,防止XSS

    5. 非得输出一段用户控制的富文本HTML的时候,使用htmlpurifier这样的过滤器,防止XSS

    6. 遵循HTTP动词语义,增删改类操作使用POST/DELETE/PUT,并增加csrf_token,防止CSRF攻击

暂时想到这么多,web安全还有很多要注意的点,建议LZ直接请个安全顾问吧。

像sql server数据库有两个安全主体
1、登录名
即是服务器为安全主体,在登录时有windows验证,以及SQL验证,Windows验证是用本机的用户直接可以登录连接数据库,而SQL验证就需要输入账号、密码,这时候就需要有一个强密码,来保证其安全。
2、用户
数据库级主体,需要在本机权限最大的用户中设置其他用户的权限,没有该最大权限用户的设置,其他用户就无法访问数据库,甚至增删改查数据库

首先,你的前端以及后端代码要保证其安全性,不能出现XXS或者SQL注入等攻击漏洞,再者就是数据库服务器与Web服务器进行分离,这样即可以提高一部分的安全性能也可以使网站提升效率。另外用户信息中的密码最好全部通过特定的加密方式进行加密处理之后再存储到数据库,保证其被盗取之后盗取者也很难知道其真实密码,望采纳!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题