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. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题2. MYSQL新建用户设置可以远程访问的问题3. java - mybatis怎么实现在数据库中有就修改,没有就添加4. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)5. angular.js - angularjs的自定义过滤器如何给文字加颜色?6. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!7. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?8. linux - 为什么我在mysql的my.cnf下找不到bind-address?9. mysql - SQL操作时间的函数?10. 各位谁知道这个CSS时候哪里出错了???
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)