java接口安全性解决方式
问题:
在前后端分离的开发中,后台提供的接口如何能保证访问权限安全?
解决方案:
主要是身份验证、数据加密、访问控制(访问频率、访问次序,每个IP次数)
一、.签名
根据用户名或者用户id,结合用户的ip或者设备号,生成一个token。在请求后台,后台获取http的head中的token,校验是否合法(和数据库或者redis中记录的是否一致,在登录或者初始化的时候,存入数据库/redis) 在使用Base64方式的编码后,Token字符串还是有20多位,有的时候还是嫌它长了。由于GUID本身就有128bit,在要求有良好的可读性的前提下,很难进一步改进了。那我们如何产生更短的字符串呢?还有一种方式就是较少Token的长度,不用GUID,而采用一定长度的随机数,例如64bit,再用Base64编码表示: var rnd = new Random(); var tokenData = userIp+userId; rnd.NextBytes(tokenData); var token = Convert.ToBase64String(tokenData).TrimEnd(’=’); 由于这里只用了64bit,此时得到的字符串为Onh0h95n7nw的形式,长度要短一半。这样就方便携带多了。但是这种方式是没有唯一性保证的。不过用来作为身份认证的方式还是可以的(如网盘的提取码)。
二、.加密 客户端和服务器都保存一个秘钥,每次传输都加密,服务端根据秘钥解密。
客户端: 1、设置一个key(和服务器端相同) 2、根据上述key对请求进行某种加密(加密必须是可逆的,以便服务器端解密) 3、发送请求给服务器
服务器端: 1、设置一个key 2、根据上述的key对请求进行解密(校验成功就是「信任」的客户端发来的数据,否则拒绝响应) 3、处理业务逻辑并产生结果 4、将结果反馈给客户端
三、.第三方支持 比如spring security-oauth 进行设置
java接口安全性解决方式相关推荐
- IDEA 出现 Exception in thread main java.lang.OutOfMemoryError: Java heap space 解决方式
先贴一下异常: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at org. ...
- Kettle安装报错:Debug Exception in thread “main“ java.lang.NoClassDefFoundError解决方式
标题:Kettle安装报错:Debug Exception in thread "main" java.lang.NoClassDefFoundError: org/eclips ...
- java.lang.OutOfMemoryError 解决方式
java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在 ...
- 使用POI操作Excel时new XSSFWorkbook ()报错java.lang.NoSuchMethodError解决方式
使用最新的POI3.11时,在执行 Workbook workBook = new XSSFWorkbook ();这段代码时出现错误: java.lang.NoSuchMethodError: j ...
- c语言 java高并发_Java高并发解决方式 2019.docx
Java高并发解决方式 2019 目录 一.消息队列 (1)应用场景 1.1 解耦和 1.2 异步处理 1.3 流量削峰 (2)消息队列缺点 2.1 系统可用性降低 2.2 系统复杂度提高 2.3 一 ...
- Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总
文章目录 前言 一.错误场景预演 1.1.查看本地旧版本 1.2.java -version 不变问题产生 二.检查新安装 JDK 是否配置正确 2.1.下载并解压目标 JDK 2.2.配置 Java ...
- Java中多线程访问冲突的解决方式
Java中多线程访问冲突的解决方式 当时用多线程访问同一个资源时,非常容易出现线程安全的问题,例如当多个线程同时对一个数据进行修改时,会导致某些线程对数据的修改丢失.因此需要采用同步机制来解决这种问题 ...
- [ANE for Android]Java接口部分引用第三方JAR的解决办法
来自:http://bbs.9ria.com/thread-160445-1-1.html 前几天在做Android AIR 游戏时,集成国外支付平台的接口时候遇到了这样的问题. 详细描述: 平台的支 ...
- Java(web)项目安全漏洞及解决方式【面试+工作】
Java(web)项目安全漏洞及解决方式[面试+工作] 一.安全性问题层次关系 大家经常会听到看到很多很多有关安全性方面的信息,可以说形形色色,对于在网络安全方面不太专业的同志来说,有点眼花缭乱,理不 ...
最新文章
- iOS三种录制视频方式详细对比
- linux之文件基本操作学习笔记
- html设置 header,http设置header
- strcut结构体和char型数组的相互转化
- python自学免费课堂-python自学——文件打开
- 看似简单的问题 静态方法和实例化方法的区别
- Christmas Present
- VMC命令 Bluemix
- GDCM:gdcm::SequenceOfItems的测试程序
- keytool命令总结
- 使用ThreadLocal绑定连接资源(事务)
- Visual Studio 2005结合Direct 9.0 SDK(Aug2007)时应该注意的事项
- Oracle 之instant client
- Qt系列教程-yafeilinx Qt入门教程
- php微信公众号报修系统,微信公众号如何实现在线报修系统?
- jqwidgets splitter把页面水平分割
- SpringCloud的认识和基本入门使用
- a19_Python文件I/O---学习笔记
- 分享 | 自定义属于自己的U盘图标
- android 模拟器的使用(Android模拟器介绍及创建)