一个系统公司比较注重业务功能,而安全常被忽略。而安全引起的事故,也是致命的。提高系统安全性,就显得很重要,结合实际工作遇到的一些问题,做安全方面的介绍。平时工作中常见的问题如下
1 SQL注入
使用mybatis 的时候,有时不小心,把SQL条件#{condition} 写成 ${condition}, 在参数值后面 加上or 条件 ,例如 ppp or 1=1,就可以畅通无阻。因为用#{} mybatis会进行 预编译,就是把动态传入的参数值转成非SQL指令无意义的字符串。而${} 没预编译,把动态的参数值解析成SQL指令,从而可以获取到数据。有时业务功能需要${}才能实现,最好对传入的参数进行校验。
2 接口被非法调用
通过一些工具,能知道接口参数,在没有做安全防范,接口就可以随意被修改调用。防止出现以上问题,可通过下面几种方法
2.1 接口使用HTTPS证书。
2.2 接口进行验签,使用MD5,RSA等签名算法。使用密钥对参数签名,生成签名串,系统获取到进行验签。
2.3 接口重要参数进行加密,再传输。
3 服务器被入侵
服务器密码泄露,或者服务器系统软件有漏洞等,造成被入侵。如何提前防范
3.1 登录目标服务器前,要先通过跳板机(也叫堡垒机).这样即使密码泄露,入侵的是跳板机。
3.2 异常地点等录,系统自动及时通知管理人员。
3.3 服务器上的软件,权限给最小
4 数据库被删除
4.1 非数据库管理人员,账号权限给只读。
4.2 数据库做实时备份。
网友评论