《常见安全漏洞和解决方案》

上传人:tang****xu6 文档编号:271286838 上传时间:2022-03-28 格式:DOCX 页数:7 大小:21.67KB
返回 下载 相关 举报
《常见安全漏洞和解决方案》_第1页
第1页 / 共7页
《常见安全漏洞和解决方案》_第2页
第2页 / 共7页
《常见安全漏洞和解决方案》_第3页
第3页 / 共7页
《常见安全漏洞和解决方案》_第4页
第4页 / 共7页
《常见安全漏洞和解决方案》_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《《常见安全漏洞和解决方案》》由会员分享,可在线阅读,更多相关《《常见安全漏洞和解决方案》(7页珍藏版)》请在金锄头文库上搜索。

1、1.1身份认证安全1.1.1弱密码密码长度6个字符以上密码字符必须包含大写字母、小写字母和数字,并进行密码复杂度检查强制定期更换密码1.1.2密码存储安全密码存储必须使用单向加密单纯的md5,sha1容易被破解,需要添加随机的盐值salt涉及支付及财产安全的需要更高的安全措施,单纯的密码加密已经不能解决问题。可以考虑手机验证码、数字证书、指纹验证。1.1.3密码传输安全1.1.3.1密码前端加密用户名、密码传输过程对称加密,可以使用密钥对的对称加密,前端使用公钥加密,后端使用私钥解密。前端加密示例引入脚本,rsa加密工具和md5加密工具.前端加密脚本,省略了提交步骤./rsa加密,varpub

2、licKey=$rsaPublicKeyvarencrypt=newJSEncrypt();encrypt.setPublicKey(publicKey);/加密varusername=encrypt.encrypt($(varpassword=encrypt.encrypt($(inputname=usernameinputname=password).val();).val();1.注意:前端密码加密如果还用了md5加密的,先md5加密再rsa加密。后端解密,省略了其他验证步骤ShiroUserServiceImpl.java.publicShiroUsergetUser(Stringna

3、meIntegeruserType,IntegerloginType)(name=RSAUtils.decryptBase64(name);.publicbooleandoValidUser(ShiroUsershiroUser,Stringpassword)(password=RSAUtils.decryptBase64(password);1.1.3.2启用https协议登录页面、支付页面等高危页面强制https协议访问。前端加密和https可以结合使用SQL注入1.2.1描述SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员

4、也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入。1. 1.2.2解决办法养成编程习惯,检查用户输入,最大限度的限制用户输入字符集合。2. 不要把没有检查的用户输入直接拼接到SQL语句中,断绝SQL注入的注入点。SQL中动态参数全部使用占位符方式传参数。正确Listparams=newArrayList();Stringsql=select*fromuserwherelog

5、in_namelike?;params.add(username);正确Mapparams=newHashMap();Stringsql=select*fromuserwherelogin_namelike:loginname;params.put(username,username);错误Stringsql=select*fromuserwherelogin_name=+username+如果不能使用占位符的地方一定要检查SQL中的特殊符号和关键字,或者启用用户输入白,只有列表包含的输入才拼接到SQL中,其他的输入不可以。Stringsql=select*from+SqlTools.filt

6、erinjection(tablename);1.2.3应急解决方案nginx过滤规则naxsi模块axsi_nbs.rules#Enableslearningmode#LearningMode;SecRulesEnabled;#SecRulesDisabled;DeniedUrlZ50x.html;#checkrulesCheckRule$SQL=8BLOCK;CheckRule$RFI=8BLOCK;CheckRule$TRAVERSAL=4BLOCK;CheckRule$EVADE=4BLOCK;CheckRule$XSS=8BLOCK;标红部分就是SQL注入过滤规则启用级别。基础滤规则

7、已经级别定义省略,可自己定义。1.3跨站点脚本攻击(XS01.3.1描述XSS(CrossSiteScripting,跨站脚本漏洞),是Web应用程序在将数据输出到网页的时候存在问题,导致攻击者可以将构造的恶意数据显示在页面的漏洞。1.3.2解决办法1养成编程习惯,检查用户输入,最大限度的限制用户输入字符集合。2不要把用户输入直接显示到页面,不要相信用户的输入。编码把用户输入编码后输出正确错误$用户输入富文本编辑器和直接显示编辑的HTML项目总尽量不要开放,如果开放就要严格检查XSS敏感HTM用段,并且严格控制用户权限,做好IP限制这些安全措施。注意:所有XSS过滤器如果要保证过滤后HTML能

8、正常浏览,都只能过滤部分已知的XSS攻击,开发HTM%辑始终存在风险和隐患。1.3.3应急解决方案web过滤器web.xmlIllegalCharacterFilter.wondersgroup.wssip.framework.web.filter.IllegalCharacterFilterexcludeUrl/resource/*,/*/*.imagesstrictfalse/init-paramfilter-mappingfilter-nameurl-patternIllegalCharacterFilter/*注意:这种方式效率低下,对应大数据提交响应很慢,不推荐。HTM陶辑器会被这个

9、过滤器拦截,需要特殊处理。nginx过滤规则naxsi模块axsi_nbs.rules#Enableslearningmode#LearningMode;SecRulesEnabled;#SecRulesDisabled;DeniedUrl750x.html;#checkrulesCheckRule$SQL=8BLOCK;CheckRule$RFI=8BLOCK;CheckRule$TRAVERSAL=4BLOCK;CheckRule$EVADE=4BLOCK;CheckRule$XSS=8BLOCK;标红部分就是XSS注入过滤规则启用级别。基础滤规则已经级别定义省略,可自己定义。默认的规则8

10、级只要带符号的通通拦截。1.4跨站请求伪造(CSRF1.4.1描述CSRF(CrossSiteRequestForgery,跨站域请求伪造)是一种网络的攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作,有很大的危害性。1. 1.4.2解决办法验证HTTPReferer字段在请求地址中添加token并验证服务器生成token,输入界面获取token,提交是带上token,服务器验证token注意!关键操作,还需要加入用户交互操作(或者独立的支付密码),在加上可比如付款,转账这样的操作一定要用户再次输入密码靠的图片验证

11、码或者手机验证码。在HTTP头中自定义属性并验证1.4.3应急解决方案web过滤器web.xmlfilterCsrfFilterfilter-class.wondersgroup.wssip.framework.web.filter.CsrfFilterexcludeUrl/resource/*,/*/*.imagesrefererUrl127.0.0.1:9080/*/*,https:/127.0.0.1:4443/*/*CsrfFilter/*注意:修改允许的referer白refererUrl。1.5X-Frame-Options未配置1.5.1解决办法1.5.1.1 apachehttp.conf.#setX-Frame-OptionsHeaderalwaysappendX-Frame-OptionsSAMEORIGIN注意:apache24默认就配置了1.5.1.2 nginxnginx.confadd_headerX-Frame-OptionsSAMEORIGIN;可以加在locationlocation/add_headerX-Frame-OptionsSAMEORIGIN;1.6服务器启用了TRACER法1.6.1解决办法1.6.1.1 apache2.0.55版本以后http.conf.TraceEnableoff2.0.55版本以前http

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号