




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1 身份认证安全1.1.1 弱密码l 密码长度6个字符以上l 密码字符必须包含大写字母、小写字母和数字,并进行密码复杂度检查l 强制定期更换密码1.1.2 密码存储安全密码存储必须使用单向加密单纯的md5,sha1容易被破解,需要添加随机的盐值salt涉及支付及财产安全的需要更高的安全措施,单纯的密码加密已经不能解决问题。可以考虑手机验证码、数字证书、指纹验证。1.1.3 密码传输安全 密码前端加密用户名、密码传输过程对称加密,可以使用密钥对的对称加密,前端使用公钥加密,后端使用私钥解密。前端加密示例引入脚本,rsa加密工具和md5加密工具.前端加密脚本,省略了提交步骤./ 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.javapublic ShiroUser getUser(String name, Integer userType, Integer loginType) name = RSAUtils.decryptBase64(name);public boolean doValidUser(ShiroUser shiroUser, String password) password = RSAUtils.decryptBase64(password); 启用https协议登录页面、支付页面等高危页面强制https协议访问。前端加密和https可以结合使用1.2 SQL注入1.2.1 描述SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。1.2.2 解决办法1. 养成编程习惯,检查用户输入,最大限度的限制用户输入字符集合。2. 不要把没有检查的用户输入直接拼接到SQL语句中,断绝SQL注入的注入点。l SQL中动态参数全部使用占位符方式传参数。正确.List params = 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 + ;.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 $SQL = 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 养成编程习惯,检查用户输入,最大限度的限制用户输入字符集合。2 不要把用户输入直接显示到页面,不要相信用户的输入。l 编码把用户输入编码后输出正确.错误.$用户输入.l 富文本编辑器和直接显示编辑的HTML,项目总尽量不要开放,如果开放就要严格检查XSS敏感HTML片段,并且严格控制用户权限,做好IP限制这些安全措施。注意:所有XSS过滤器如果要保证过滤后HTML能正常浏览,都只能过滤部分已知的XSS攻击,开发HTML编辑始终存在风险和隐患。1.3.3 应急解决方案web过滤器web.xml.IllegalCharacterFiltercom.wondersgroup.wssip.framework.web.filter.IllegalCharacterFilterexcludeUrl/resource/*,/*/*.imagesstrictfalseIllegalCharacterFilter/*.注意:这种方式效率低下,对应大数据提交响应很慢,不推荐。 HTML编辑器会被这个过滤器拦截,需要特殊处理。nginx 过滤规则naxsi模块axsi_nbs.rules# Enables learning mode #LearningMode;SecRulesEnabled;#SecRulesDisabled;DeniedUrl /50x.html;# check rules CheckRule $SQL = 8 BLOCK;CheckRule $RFI = 8 BLOCK;CheckRule $TRAVERSAL = 4 BLOCK;CheckRule $EVADE = 4 BLOCK;CheckRule $XSS = 8 BLOCK;标红部分就是XSS注入过滤规则启用级别。基础滤规则已经级别定义省略,可自己定义。默认的规则8级只要带符号的通通拦截。1.4 跨站请求伪造(CSRF)1.4.1 描述CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作,有很大的危害性。1.4.2 解决办法1. 验证 HTTP Referer 字段2. 在请求地址中添加 token 并验证服务器生成token,输入界面获取token,提交是带上token,服务器验证token注意!关键操作,还需要加入用户交互操作比如付款,转账这样的操作一定要用户再次输入密码(或者独立的支付密码),在加上可靠的图片验证码或者手机验证码。3. 在 HTTP 头中自定义属性并验证1.4.3 应急解决方案web过滤器web.xml.CsrfFiltercom.wondersgroup.wssip.framework.web.filter.CsrfFilterexcludeUrl/resource/*,/*/*.imagesrefererUrl:9080/*/*,:4443/*/*CsrfFilter/*.注意:修改允许的referer白名单refererUrl。1.5 X-Frame-Options未配置1.5.1 解决办法 apache http.conf.#set X-Frame-Options Header always append X-Frame-Options SAMEORIGIN.注意:apache24默认就配置了 nginx nginx.conf.add_header X-Frame-Options SAMEORIGIN;.可以加在location.location / add_header X-Frame-Options SAMEORIGIN;.1.6 服务器启用了TRACE方法1.6.1 解决办法 apache 2.0.55版本以后http.conf.TraceEnable off.2.0.55版本以前http.conf.LoadModule rewrite_module modules/mod_rewrite.so .在各虚拟主机的配置文件里添加如下语句:.RewriteEngine On RewriteCond %REQUEST_METHOD (TRACE|TRACK)RewriteRule .* - F. nginx nginx.conf. #限制访问的方法 if ($request_method ! (GET|HEAD|POST)$) return 403;.可以加在server.server . if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银保部合规管理办法
- 电子发票如何管理办法
- 网络暴力规范管理办法
- 企业技术人员安全培训课件
- 社区三类人员管理办法
- 出血热疫苗接种方案课件
- 出租车安全生产培训课件
- 2025年浙江省烟草专卖局(公司)校园招聘考试试题(含答案)
- 超声心动图监测指标-洞察及研究
- 临床护理技术操作常见并发症的预防和处理考试试题(附答案)
- 贵州省榕江县2025年上半年事业单位公开遴选试题含答案分析
- 小学五年级数学学科培优辅差专项计划
- 浙江省宁波市五校2024-2025学年高一上学期期中考试生物试卷(含答案)
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第三季度招聘23人笔试模拟试题及答案解析
- 2025年机动车检验检测机构授权签字人考核试题及答案
- 新学期-启航出发-2025-2026学年初一上学期新生开学第一课主题班会
- 2025年秋数学(新)人教版三年级上课件:第1课时 观察物体
- GB/T 45701-2025校园配餐服务企业管理指南
- 第2课《中国人首次进入自己的空间站》课件
- 填充墙施工正确和错误做法图文对照解说
- 数字电子技术基础:第9章 Verilog HDL基本语法
评论
0/150
提交评论