javascript - 如何保证数据库里的信息安全?
问题描述
没接触过网络安全,请教各位大佬,把用户信息放到数据库后怎么保证安全?
问题解答
回答1:题主你这个问题问得好大... 从以下几个方面着手吧:
数据库权限:连数据库不要老用root,给web应用单独开帐号,最小化权限
数据库密码:不要弱密码,尽量搞个随机生成的16位以上的密码
web服务器:同数据库,密码尽量复杂化,尽量不要直接用root帐号,单独开帐号,只有在必须需要的时候才用root
web应用:
尽量选一个好点的DB库或ORM库,使用参数化的SQL查询,不要直接把参数拼在SQL里面,防止SQL注入
用户(包括后台管理用户)的密码信息不要直接存储,应加盐hash后再存储
如果可以,尽量使用HTTPS
渲染HTML的时候,尽量使用编码后再输出,防止XSS
非得输出一段用户控制的富文本HTML的时候,使用htmlpurifier这样的过滤器,防止XSS
遵循HTTP动词语义,增删改类操作使用POST/DELETE/PUT,并增加csrf_token,防止CSRF攻击
暂时想到这么多,web安全还有很多要注意的点,建议LZ直接请个安全顾问吧。
回答2:首先,你的前端以及后端代码要保证其安全性,不能出现XXS或者SQL注入等攻击漏洞,再者就是数据库服务器与Web服务器进行分离,这样即可以提高一部分的安全性能也可以使网站提升效率。另外用户信息中的密码最好全部通过特定的加密方式进行加密处理之后再存储到数据库,保证其被盗取之后盗取者也很难知道其真实密码,望采纳!
相关文章:
1. html5 - 在一个页面中 初始了两个swiper 不知道哪里错了 一直不对2. html5和Flash对抗是什么情况?3. mac连接阿里云docker集群,已经卡了2天了,求问?4. 微信小程序session无法缓存的问题5. 前端 - 微信支付开发:调用jsapi时缺少参数total_fee6. docker绑定了nginx端口 外部访问不到7. node.js - vue怎么部署到网站里8. phpadmin的数据库,可以设置自动变化时间的变量吗?就是不需要接收时间数据,自动变化9. vue.js - nginx反向代理location顺序问题10. java - 关于aop在controller不起用的问题
