常见安全漏洞和解决办法.doc
《常见安全漏洞和解决办法.doc》由会员分享,可在线阅读,更多相关《常见安全漏洞和解决办法.doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1.1 身份认证安全1.1.1 弱密码l 密码长度6个字符以上l 密码字符必须包含大写字母、小写字母和数字,并进行密码复杂度检查l 强制定期更换密码1.1.2 密码存储安全密码存储必须使用单向加密单纯的md5,sha1容易被破解,需要添加随机的盐值salt涉及支付及财产安全的需要更高的安全措施,单纯的密码加密已经不能解决问题。可以考虑手机验证码、数字证书、指纹验证。1.1.3 密码传输安全1.1.3.1 密码前端加密用户名、密码传输过程对称加密,可以使用密钥对的对称加密,前端使用公钥加密,后端使用私钥解密。前端加密示例引入脚本,rsa加密工具和md5加密工具.前端加密脚本,省略了提交步骤./
2、rsa加密,var publicKey = $rsaPublicKey;var encrypt = new JSEncrypt();encrypt.setPublicKey(publicKey);/ 加密var username = encrypt.encrypt($(inputname= username).val();var password = encrypt.encrypt($(inputname=password).val();.注意:前端密码加密如果还用了md5加密的,先md5加密再rsa加密。后端解密,省略了其他验证步骤ShiroUserServiceImpl.javapubli
3、c ShiroUser getUser(String name, Integer userType, Integer loginType) name = RSAUtils.decryptBase64(name);public boolean doValidUser(ShiroUser shiroUser, String password) password = RSAUtils.decryptBase64(password);1.1.3.2 启用https协议登录页面、支付页面等高危页面强制https协议访问。前端加密和https可以结合使用1.2 SQL注入1.2.1 描述SQL注入攻击是黑
4、客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。1.2.2 解决办法1. 养成编程习惯,检查用户输入,最大限度的限制用户输入字符集合。2. 不要把没有检查的用户输入直接拼接到SQL语句中,断绝SQL注入的注入点。l SQL中动态参数全部使用占位符方式传参数。正确.List p
5、arams = new ArrayList(); String sql = select * from user where login_name like ?;params.add(username);.正确.Map params = new HashMap(); String sql = select * from user where login_name like :loginname;params.put(username, username);.错误 .String sql = select * from user where login_name = + username + ;
6、.l 如果不能使用占位符的地方一定要检查SQL中的特殊符号和关键字,或者启用用户输入白名单,只有列表包含的输入才拼接到SQL中,其他的输入不可以。String sql = select * from + SqlTools.filterInjection(tablename); 1.2.3 应急解决方案nginx 过滤规则naxsi模块axsi_nbs.rules# Enables learning mode #LearningMode;SecRulesEnabled;#SecRulesDisabled;DeniedUrl /50x.html;# check rules CheckRule $S
7、QL = 8 BLOCK;CheckRule $RFI = 8 BLOCK;CheckRule $TRAVERSAL = 4 BLOCK;CheckRule $EVADE = 4 BLOCK;CheckRule $XSS = 8 BLOCK;标红部分就是SQL注入过滤规则启用级别。基础滤规则已经级别定义省略,可自己定义。1.3 跨站点脚本攻击(XSS)1.3.1 描述XSS(Cross Site Scripting,跨站脚本漏洞),是Web应用程序在将数据输出到网页的时候存在问题,导致攻击者可以将构造的恶意数据显示在页面的漏洞。1.3.2 解决办法1 养成编程习惯,检查用户输入,最大限度的限制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常见 安全漏洞 以及 解决办法
限制150内