美文网首页
如何保证HTTP接口请求的安全呢?

如何保证HTTP接口请求的安全呢?

作者: jianghu000 | 来源:发表于2017-11-08 00:02 被阅读0次

那我们要如何对接口请求进行一个安全校验或者拦截非法请求呐?

1、选择拦截过滤器。

在请求的时候对请求方法进行一次拦截处理。比如非正常访问的方法已经注入插入可执行语句参数验证等在拦截中进行一次安全校验保证

请求不是非法请求。

2、数据加密。我们知道目前大部分APP接口都是通过Http协议进行调用的容易被抓包拦截。

我们可以对客户端和服务端都对数据传输的时候进行一个加密处理。常用的MD5 AES等。

譬如:上一个项目做法比较简单 对用户与帐号密码进行加密作为一个authcode。每次请求必须携带。这个方法与下边说的方法3组合运用

客户端:

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

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

3、发送请求给服务器

服务器端:

1、设置一个key

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

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

4、将结果反馈给客户端

3、签名

根据用户名或者用户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的形式,长度要短一半。这样就方便携带多了。但是这种方式是没有唯一性保证的。不过用来作为身份认证的方式还是可以的(如网盘的提取码)。

4、使用第三方框架与技术整合支持比如spring的框架中的oauth模块。

相关文章

  • 如何保证HTTP接口请求的安全呢?

    那我们要如何对接口请求进行一个安全校验或者拦截非法请求呐? 1、选择拦截过滤器。 在请求的时候对请求方法进行一次拦...

  • 开放api接口签名验证

    你在写开放的API接口时是如何保证数据的安全性的?我们通过http Post或者Get方式请求服务器的时候,会面临...

  • 前端数据安全解决方案

    目标 1:禁止网站分析。2:保证Cookies安全。3:http请求数据安全。4:http请求防重。 方案 1:禁...

  • 腾讯二面:说出10种保证接口数据安全的方案

    前言 我们日常开发中,如何保证接口数据的安全性呢?个人觉得,接口数据安全的保证过程,主要体现在这几个方面:一个就是...

  • java - 处理接口跨域的安全性问题

    Java给别人提供接口,接口安全怎么保证? 1.请求的合法性校验,考虑用token方式保证接口不被其他人访问。 2...

  • ajax请求接口参数

    如何使用ajax请求数据: // 请求接口数据$.ajax({ url: 'http://localhost/...

  • 如何保证HTTP传输安全

    目前大多数网站和 app 的接口都是采用 http 协议,但是 http 协议很容易就可以通过抓包工具监听到内容,...

  • 如何保证API接口安全?

    一、摘要 在实际的业务开发过程中,我们常常会碰到需要与第三方互联网公司进行技术对接,例如支付宝支付对接、微信支付对...

  • Vue学习笔记-拦截器

    拦截器: 对特定的http请求或响应消息或请求头进行验证,拦截不合法的http交互以保证web环境的安全。 拦截器...

  • 高并发下,如何保证接口的幂等性?

    高并发下,如何保证接口的幂等性? 幂等性就是同一个操作执行多次,产生的效果一样。如 http 的 get 请求,数...

网友评论

      本文标题:如何保证HTTP接口请求的安全呢?

      本文链接:https://www.haomeiwen.com/subject/srgsmxtx.html