在设计系统时,需要思考并采用诸多的安全措施
1、防止sql注入
a) 在客户端和服务端,同时对用户提交数据和传递参数进行验证检查数据准确性
b) 参数化执行sql语句
c) 区分数据库访问用户权限,尽量避免使用sa账户进行访问链接
d) 过滤敏感的关键词或对铭感关键词进行编码处理
e)
2、防止xss攻击
a)
3、密码安全设计
a) 密码复杂度设计
i. 限制密码长度至少在8位以上
ii. 必须进行时组合式密码
iii. 禁止使用简单密码组合
b) 密码加密并进行加盐处理
i. 加盐公式=Md5((MD5(用户输入密码)+验证码+用户名)+用户类型+用户所属的学校名)
c) 验证码复杂度设计
i. 公式计算 1 + 1 = 多少
ii. 输入汉字+字母+数字
iii. 对验证码背景色进行加噪处理
d) 弱口令扫描:禁止用户使用简单密码,提供密码强度提示
e) 侦听:防止部分黑客使用sniffer进行侦听扫描
i. 在用户客户端输入密码时,进行MD5操作避免在网络传输过程中被扫描到明码
ii. 使用https进行访问连接操作,但会影响用户体验
f) 暴库:
g) 社工库处理
h) 拖库
4、双重验证
a) 客户端验证
b) 服务端验证
5、日志检查
a) 服务器日志检查
b) Iis,apache日志检查
c) 数据库日志检查
6、 漏洞扫描
a) 使用漏洞扫描工具进行扫描