4.请求安全-- 结合使用的安全优势总结
2015-09-10 08:38
302 查看
结合使用的安全优势与总结
前言
写到这里基本上笔者在请求中遇到的问题,以及运用到实践中的解决方案,基本上分为,请求唯一性,单设备登录,单点登录,MD5校验这几种校验的小技巧,在之前都对着几种校验方式进行也一些独立的说明(还没有看过的可以先去游览查阅一下,在请求安全模块中)
在本章里面会着重说明怎么样综合使用,如何获得比较高的安全性,以及会简单介绍一下方便使用的一种高级加密方法.
1.回顾
1.1 单设备登录.单点登录
每次调用登录接口获取的ID都是一个临时ID.当下次登录的时候重新生成在覆盖,就可以达到单设备登录的 效果了,这个临时ID对应着真正的用户ID每次客户端请求都是拿着临时ID请求过来然后服务器做验证,而且 这个临时ID和真正ID是存储在一个共享的区域,其他的模块都能获取到这一项对应
1.2 MD5校验
MD5在请求安全中关键用到的基本上就是对于请求参数进行校验,对与服务器来言排除系统问题最大的问题 就是害怕请求被拦截,拦截修改之后就有很多漏洞的可能性了, 为了避免被拦截,参数被修改这种文件的常 用方法就是对请求参数进行校验,就算拦截了请求参数修改了只要模拟不出MD5加密出来的值,在服务器过滤 器直接就会进行拦截. 我这边推荐的请求校验方法在传递参数的时候带上 MD5值 随机数 时间戳 当然这几 个都是由客户端生成 MD5=MD5(随机数+时间戳+MD5(KEY+公司名+项目名)) 当然这个规则也是可以定制的 请求参数在服务器拦截器就用客户端传递过来的 随机数 时间戳 来做校验如果不通过就不让继续访问
1.3 请求的唯一性
如果别人不破解MD5直接解析Ddos攻击当然要有个拦截机制,请求唯一性是对于一个用户ID这个都是用户的唯 一标示在这个简单的解决方案中有两个比较重要的东西,随机数,时间戳,通过这两个东西加上用户唯一标示就 能实现一套简单的请求唯一性验证
2. 密文加密-STD3Des
STD3Des加密是一种高级可逆加密方法,他需要加解密双方指定两个东西一个是key,一个是vi(vi是偏移量) 密文加密意义在于别人捕获请求不会看到传递参数的具体值
3. 结合增加安全性
1.因为有单设备登录ID是动态的,所以吧ID作为MD5的条件加密会更安全 2.MD5的随机数和时间戳与唯一请求的使用的相同,应为有MD5加密,所以模拟随机数和时间戳需要先破解MD5校验 3.密文加密可以保证所有参数都是密文,进一步增加随机数和时间戳被修改问题
4. 性能
很多人会在乎接口加了这么多东西性能会降低多少呢 ,我经过实践下来其中性能消耗最大的是加解密,损耗在3%~8% 请求量越大损耗越大其他加起来基本保持在1%左右,基本上也是可以接受的,而且结合起来安全性还是相对比较高的
5.总结
通过以上所述各项小技巧的组合确实可以得到不错的安全性,基本上关于请求安全就告一段落了,笔者水平有限希望 大家多提意见,多交流!
相关文章推荐
- FMDatabase的一些基本操作小结
- ubuntu下openjdk环境配置
- 小知识数组超出边界
- 3.请求安全-- 如何验证请求的唯一性
- js 设计模式
- 字符串排成字典序,字符串数组
- XPATH的几个常用函数
- LAMP实现一个简易网页应用
- 需求分析
- 浅析C++中的智能指针
- RAC中经常使用的运算符 - 感谢听榆大叔的整理
- 浅析C++中的智能指针
- 大龄屌丝自学笔记--Java零基础到菜鸟--016
- Quick sort 快速排序
- 引用/对象
- 杭电OJ--2098 分拆素数和
- SVN trunk、branch、tag的用法
- ADT中的Android Virtual Device Manager中找不到我的android设备的手机
- js冲突 解决的办法
- java,map遍历,输出键值