问题:
在前后端分离的开发中,后台提供的接口如何能保证访问权限安全?

解决方案:
主要是身份验证、数据加密、访问控制(访问频率、访问次序,每个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接口安全性解决方式相关推荐

  1. IDEA 出现 Exception in thread main java.lang.OutOfMemoryError: Java heap space 解决方式

    先贴一下异常: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space     at org. ...

  2. Kettle安装报错:Debug Exception in thread “main“ java.lang.NoClassDefFoundError解决方式

    标题:Kettle安装报错:Debug  Exception in thread "main" java.lang.NoClassDefFoundError: org/eclips ...

  3. java.lang.OutOfMemoryError 解决方式

    java.lang.OutOfMemoryError:  Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在 ...

  4. 使用POI操作Excel时new XSSFWorkbook ()报错java.lang.NoSuchMethodError解决方式

    使用最新的POI3.11时,在执行 Workbook  workBook = new XSSFWorkbook ();这段代码时出现错误: java.lang.NoSuchMethodError: j ...

  5. c语言 java高并发_Java高并发解决方式 2019.docx

    Java高并发解决方式 2019 目录 一.消息队列 (1)应用场景 1.1 解耦和 1.2 异步处理 1.3 流量削峰 (2)消息队列缺点 2.1 系统可用性降低 2.2 系统复杂度提高 2.3 一 ...

  6. Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

    文章目录 前言 一.错误场景预演 1.1.查看本地旧版本 1.2.java -version 不变问题产生 二.检查新安装 JDK 是否配置正确 2.1.下载并解压目标 JDK 2.2.配置 Java ...

  7. Java中多线程访问冲突的解决方式

    Java中多线程访问冲突的解决方式 当时用多线程访问同一个资源时,非常容易出现线程安全的问题,例如当多个线程同时对一个数据进行修改时,会导致某些线程对数据的修改丢失.因此需要采用同步机制来解决这种问题 ...

  8. [ANE for Android]Java接口部分引用第三方JAR的解决办法

    来自:http://bbs.9ria.com/thread-160445-1-1.html 前几天在做Android AIR 游戏时,集成国外支付平台的接口时候遇到了这样的问题. 详细描述: 平台的支 ...

  9. Java(web)项目安全漏洞及解决方式【面试+工作】

    Java(web)项目安全漏洞及解决方式[面试+工作] 一.安全性问题层次关系 大家经常会听到看到很多很多有关安全性方面的信息,可以说形形色色,对于在网络安全方面不太专业的同志来说,有点眼花缭乱,理不 ...

最新文章

  1. iOS三种录制视频方式详细对比
  2. linux之文件基本操作学习笔记
  3. html设置 header,http设置header
  4. strcut结构体和char型数组的相互转化
  5. python自学免费课堂-python自学——文件打开
  6. 看似简单的问题 静态方法和实例化方法的区别
  7. Christmas Present
  8. VMC命令 Bluemix
  9. GDCM:gdcm::SequenceOfItems的测试程序
  10. keytool命令总结
  11. 使用ThreadLocal绑定连接资源(事务)
  12. Visual Studio 2005结合Direct 9.0 SDK(Aug2007)时应该注意的事项
  13. Oracle 之instant client
  14. Qt系列教程-yafeilinx Qt入门教程
  15. php微信公众号报修系统,微信公众号如何实现在线报修系统?
  16. jqwidgets splitter把页面水平分割
  17. SpringCloud的认识和基本入门使用
  18. a19_Python文件I/O---学习笔记
  19. 分享 | 自定义属于自己的U盘图标
  20. android 模拟器的使用(Android模拟器介绍及创建)

热门文章

  1. 女性哺乳期可以染发吗?
  2. Linux中查看进程状态信息
  3. 比较器:Comparator的用法
  4. java 比较器comparator_Java比较器之Comparable 和 Comparator
  5. Node 模块加载汇总
  6. C4D如何锁定摄像机? C4D工程文件怎么锁住了?C4D打开为什么不能动了?
  7. iPhone 8上的A11处理器会有多强大?
  8. 【机器学习】逻辑回归-基础认识与鸢尾花分类实操案例
  9. 维护国家主权,保卫国家安全|科力锐助力中华人民共和国无锡出入境边防检查站灾备建设
  10. static_cast的用法