精华内容
下载资源
问答
  • Java接口安全性

    2019-11-18 09:21:16
    服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。Token是客户端访问服务端的凭证。 时间戳超时机制:用户每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后跟当前时间进行比对,...

    Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。Token是客户端访问服务端的凭证。

    时间戳超时机制:用户每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后跟当前时间进行比对,如果时间差大于一定时间(比如5分钟),则认为该请求失效。时间戳超时机制是防御DOS攻击的有效手段。

    签名机制:将 Token 和 时间戳 加上其他请求参数再用MD5或SHA-1算法(可根据情况加点盐)加密,加密后的数据就是本次请求的签名sign,服务端接收到请求后以同样的算法得到签名,并跟当前的签名进行比对,如果不一样,说明参数被更改过,直接返回错误标识。签名机制保证了数据不会被篡改。

    拒绝重复调用(非必须):客户端第一次访问时,将签名sign存放到缓存服务器中,超时时间设定为跟时间戳的超时时间一致,二者时间一致可以保证无论在timestamp限定时间内还是外 URL都只能访问一次。如果有人使用同一个URL再次访问,如果发现缓存服务器中已经存在了本次签名,则拒绝服务。如果在缓存中的签名失效的情况下,有人使用同一个URL再次访问,则会被时间戳超时机制拦截。这就是为什么要求时间戳的超时时间要设定为跟时间戳的超时时间一致。拒绝重复调用机制确保URL被别人截获了也无法使用(如抓取数据)。

    展开全文
  • 在调用的时候,如何来保证非法链接或者恶意攻击呢,下面我们一起来了解一下java如何保证接口安全性。希望看完后对你有所帮助。1.签名根据用户名或者用户id,结合用户的ip或者设备号,生成一个token。在请求后台,...

    33903454110977.jpg

    在开发过程中,肯定会有和第三方或者app端的接口调用。在调用的时候,如何来保证非法链接或者恶意攻击呢,下面我们一起来了解一下java如何保证接口的安全性。希望看完后对你有所帮助。

    1.签名

    根据用户名或者用户id,结合用户的ip或者设备号,生成一个token。在请求后台,后台获取http的head中的token,校验是否合法(和数据库或者redis中记录的是否一致,在登录或者初始化的时候,存入数据库/redis)

    2.加密

    客户端和服务器都保存一个秘钥,每次传输都加密,服务端根据秘钥解密。

    客户端:

    1、设置一个key(和服务器端相同)

    2、根据上述key对请求进行某种加密(加密必须是可逆的,以便服务器端解密)

    3、发送请求给服务器

    服务器端:

    1、设置一个key

    2、根据上述的key对请求进行解密(校验成功就是「信任」的客户端发来的数据,否则拒绝响应)

    3、处理业务逻辑并产生结果

    4、将结果反馈给客户端

    3.第三方支持

    比如spring security-oauth

    佰佰安全网提醒您:只有实施网络安全防范措施与应用措施这样才能保障在网络世界中不会泄露任何信息,其实大家也可以学习些相关的网络安全常识和网络安全技术知识来帮助自己。

    责任编辑:张小付

    展开全文
  • 在用户登录的时候,我返回会员相应的uid和password,password虽然是明文的,别人知道也不能登录,毕竟是经过加密的,然后每次请求接口的时候user_id=333&token=aa37e10c7137ac849eab8a2d5020568f,通过主键uid可以很快...

    方案二数据库会员表的password是带上了随机密窜并经过双重加密的md5值;在用户登录的时候,我返回会员相应的uid和password,password虽然是明文的,别人知道也不能登录,毕竟是经过加密的,然后每次请求接口的时候user_id=333&token=aa37e10c7137ac849eab8a2d5020568f,通过主键uid可以很快的找到当前uid对应的token,然后再来比对;但是这样想法是too yang too simple的,抓包的人虽然不能通过密文密码来登录该会员,然而一旦知道了这个token,除非用户更改密码,否则也可以一直通过这个token来操作该会员的相关接口;方案三通过对称加密算法,该加密算法对uid+网站公钥进行时效加密,在一定时效内可用。在会员登录成功时,服务器端对该ID加密后返回给客户端,客户端每次请求接口的时候带上该参数,服务器端通过解密认证;但是这样做,也是不安全的。因为,防外不防内,听说这次的携程宕机就是因为内部离职人员的恶意操作。内部不怀好意的人员如果知道相应的算法规则后,就算没有数据库权限,也可以通过接口来操作相关会员;方案四会员登录的时候请求登录接口,然后服务器端返回给客户端一个token,该token生成的规则是 网站公钥 + 当前uid + 当前时间戳 + 一段随机数双重加密,根据需求决定是把该token放进cache等一段时间自动失效,还是放进数据库(如果要放进数据库的话,单独拎出一张表来,顺便记录用户的登录,登出时间),在用户登出登录的时候改变一下,确保该token只能在用户人为登出登录之间有用。为保安全,应保证让用户在一段时间内自动退出;此方案配合Linux和数据库的权限管理可以防外又防内;其他接口开发的注意事项数据格式最好使用JSON格式数据,因为JSON有较好的跨平台性。在生成JSON的时候,要注意json的两种格式:对象(字典) 与 数组;mobile端开发语言中没有类似PHP中的foreach不能遍历对象,只能遍历数组,他们对对象的操作一般都是通过键名去取键值。不管是成功,还是失败。接口必须提供明确的数据状态信息,并且不能返回NULL,如果返回NULL的话,在IOS端会崩掉。

    展开全文
  • java接口安全性解决方式

    千次阅读 2019-09-09 17:27:43
    在前后端分离的开发中,后台提供的接口如何能保证访问权限安全? 解决方案: 主要是身份验证、数据加密、访问控制(访问频率、访问次序,每个IP次数) 一、.签名 根据用户名或者用户id,结合用户的ip或者设备号,...

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

    解决方案:
    主要是身份验证、数据加密、访问控制(访问频率、访问次序,每个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 进行设置

    展开全文
  • 在一个安卓App项目中访问java后台接口,对于请求接口安全性跟用户登录状态验证.接口安全性采用签名的方式用户登录状态采用token的方式具体实现思路如下(小小菜鸟欢迎指正) 1.java后台安全性配置:secret(密钥),appId...
  • 在开发过程中,肯定会有和第三方或者app端的接口调用。在调用的时候,如何来保证非法链接或者恶意攻击呢?1.签名根据用户名或者用户id,结合用户的ip或者设备号,生成一个token。在请求后台,后台获取http的head中的...
  • 答:主要分List、Set、Map、Queue四类,其中包含ArrayList、LinkedList、HashSet、TreeSet、HashMap Comparable和Comparator接口的区别? 答:其两 ... » smart-rick 2021-02-15 Spring组件注册 @Configuration @...
  • 安全性设计a.白名单限制仅接受特定系统的请求响应,调用方的IP地址需要在本系统中报备,否则无法调用b.合法身份合法性验证Basic Authentication :这种方式是直接将用户名和密码放到Header中,使用 Authorization: ...
  • 接口调用是我们在使用java编程开发语言的时候会经常使用到的一个功能,而今天我们就通过案例分析来了解一下,java编程接口调用安全性都有哪些要求。1、调用接口的先决条件-token获取token一般会涉及到几个参数appid...
  • 接口安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:Token授权机制用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-...
  • 接口安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:Token授权机制用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-...
  • 原标题:WEB安全性测试来源:http://www.51testing.comSQL注入所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有...
  • 关于本教程 本教程是关于什么的? 也许没有比应用程序安全更重要的软件工程主题。 攻击是昂贵的,无论是来自内部还是外部,而且某些攻击可能会使软件公司承担赔偿责任。... Java平台(包括基本语言和库扩展...
  • 最近在搞安全开发,请问各位大神前辈,什么样的接口危险高呢?
  • 给调用者一个SECRET,每次调用者需要调用接口的时候,都需要把这个SECRET带过来(为了安全需要对key进行一系列加密的措施)一个SECRET就代表一个调用者,把相应的SECRET的调用次数放入缓存中(必须确保次数增加的原子)...
  • 接口安全性主要围绕 token、timestamp 和 sign 三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将...
  • 在日常开发中,总会接触到各种接口。前后端数据传输接口,第三方业务平台接口。一个平台的前后端数据传输接口...一 安全性问题安全性问题是一个接口必须要保证的规范。如果接口保证不了安全性,那么你的接口相当于...
  • 在开发过程中,肯定会有和第三方或者app端的接口调用。在调用的时候,如何来保证非法链接或者恶意攻击呢?1.签名根据用户名或者用户id,结合用户的ip或者设备号,生成一个token。在请求后台,后台获取http的head中的...
  • ​前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来...
  • @RequestMapping(value = "/upLoadFuJian", method =RequestMethod.POST)@ResponseBodypublic Map upLoadFuJian(@RequestParam MultipartFile file,HttpServletRequest request) throwsIllegalStateException, IOExc...
  • 接口安全问题请求身份是否合法?请求参数是否被篡改?请求是否唯一?AccessKey&SecretKey (开放平台)请求身份为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法...
  • 1.参数加密,h5加密,api接口解密2.签名算法验签,用户端服务端设计一个签名算法,进行校验3.针对登录用户,生成一个token,(ip+uid+时间戳),存在数据库,只在登录期间有效。配合Linux和数据库的权限管理可以防外又...
  • 在设计API时,要保证RESTful API的安全性,主要考虑三个大方面:1.对受限资源的登录授权2.对请求做身份认证3.对敏感数据进行加密一、受限资源的登录授权此流程不是本文重点,不赘述,基本流程如下:客户端提交账号...
  • java接口安全<干货篇>

    2017-11-27 17:29:00
    这辈子没办法做太多事情,所以每一件都要做到精彩绝伦! People can't do too many things in my life,so everything will be wonderful ...接口安全性主要围绕Token、Timestamp(ts)和Sign...
  • 给调用者一个SECRET,每次调用者需要调用接口的时候,都需要把这个SECRET带过来(为了安全需要对key进行一系列加密的措施)一个SECRET就代表一个调用者,把相应的SECRET的调用次数放入缓存中(必须确保次数增加的原子)...
  • 在前后端分离的开发中,后台提供的接口如何能保证访问权限安全?主要是身份验证、数据加密、访问控制(访问频率、访问访问次序,每个IP次数) 一、.签名 根据用户名或者用户id,结合用户的ip或者设备号,生成一个...
  • 在开发过程中,肯定会有和第三方或者app端的接口调用。在调用的时候,如何来保证非法链接或者恶意攻击呢? 1.签名 根据用户名或者用户id,结合用户的ip或者设备号,生成一个token。在请求后台,后台获取http的...
  • 接口平安问题申请身份是否非法?申请参数是否被篡改?申请是否惟一?AccessKey&SecretKey (开放平台)申请身份为开发者调配AccessKey(开发者标识,确保惟一)和SecretKey(用于接口加密,确保不易被穷举,生成算法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,725
精华内容 1,090
关键字:

java接口安全性

java 订阅