浅析如何防范HTTP报头trace方法追踪漏洞、如何防范网络传输安全(中间人劫持、接口加签加密防重放)

一、HTTP 报头追踪漏洞

  HTTP/1.1(RFC2616)规范定义了 HTTP TRACE 方法,主要是用于客户端通过向 Web 服务器提交 TRACE 请求来进行测试或获得诊断信息。当 Web 服务器启用 TRACE 时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中 HTTP 头很可能包括 Session Token、Cookies 或其它认证信息。

  攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其它方式配合来进行有效攻击,由于 HTTP TRACE请求可以通过客户浏览器脚本发起(如 XMLHttpRequest),并可以通过 DOM 接口来访问,因此很容易被攻 击者利用。

  防御 HTTP 报头追踪漏洞的方法通常禁用 HTTP TRACE 方法。

  如何禁用可以搜一下:

  linux具体操作如下: 找到服务器配置文件  /etc/httpd/conf/httpd.conf,在文件最后一行加上 TraceEnable off

  如果你的项目走 nginx 转发,那么nginx也有这样的配置

二、网络传输安全

1、中间人劫持

  如何防范:对于个人来说防止自己被中间人攻击最基本的就是不要乱连不安全的网络;不使用不安去的APP或浏览器

  中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。

  中间人攻击是攻击方同时与服务端和客户端建立起了连接,并让对方认为连接是安全的,但是实际上整个通信过程都被攻击者控制了。攻击者不仅能获得双方的通信信息,还能修改通信信息。

  通常来说不建议使用公共的 Wi-Fi,因为很可能就会发生中间人攻击的情况。如果你在通信的过程中涉及到了某些敏感信息,就完全暴露给攻击方了。

  当然防御中间人攻击其实并不难,只需要增加一个安全通道来传输信息。HTTPS 就可以用来防御中间人攻击,但是并不是说使用了 HTTPS 就可以高枕无忧了,因为如果你没有完全关闭 HTTP 访问的话,攻击方可以通过某些方式将 HTTPS 降级为 HTTP 从而实现中间人攻击。

2、接口加签

  通过上面的例子我们知道https并不是绝对安全的,他是会被中间人劫持的,那么我们有什么方法防止数据被篡改呢?接口加签的目的就是防止数据被篡改!

  举例:正常用户提交转账申请,请求中携带正常用户的用户信息,他想转账N金额给用户A,这样的请求银行没法拒绝会正常转账,因为携带了正常的用户信息。但是当中间人劫持了这个请求,他修改了转账账号为B,修改了转账金额为M,这样我们的钱会不会转给其他人呢?

  为了解决上述问题,我们可以引入接口加签

  服务端首先会校验签是不是对的,如果不对直接拒绝请求,而签的生成和请求参数密密相关,当接口请求中的参数被篡改后,网关是没法进行验签通过的,直接拒绝了请求,抛出错误

3、接口加密

  有时候我们的参数根本不想被人看见是啥,我们就可以利用参数加密了

4、接口防重放

  防重放也叫防复用,简单来说,就是我获取到这个请求的信息之后, 我什么也不改, 我就拿着接口的参数去重复请求这个充值的接口,也就是说我的请求是合法的,因为所有参数都是跟合法请求一模一样的,也就是说: 服务端的 sign 验证一定能通过。

  如图上的例子,即使我们不知道登录账户名密码,即使接口参数被加签加密了,我们依旧能够登录并拿到登录信息,我们根本不用关心加密加签的逻辑,我们只需要简单的重放攻击即可。

5、防止重放设计

  客户端在请求中添加两个参数:

(1)添加一个随机不重复的字符串参数 比如uuid 至于怎么让他不重复,可以考虑拼接时间戳,md5随机数等 

(2)添加一个请求时间的参数 如 time 值就是发送请求时的 时间戳

  服务端接收到请求之后:

(1)去缓存里中查找 uuid 这个参数对应的值是否存在

(2)如果不存在:就把这个uuid的值保存到缓存中, 记录这个请求

(3)如果已存在:存在那就证明, 已经请求过一次了, 就不处理这个请求了

  这就是最简单的防重放逻辑,接口只能调用一次,即使被中间人攻击后也没法进行重放

网络传输安全来源于:https://mp.weixin.qq.com/s/xRCLKE8KAS_BdrbfryFaCQ

  此外这篇文章介绍还挺详细的,可以看看:《前端网络安全防范详解》https://blog.csdn.net/qq_37288477/article/details/86601005

posted @ 2019-07-14 23:30  古兰精  阅读(3085)  评论(0编辑  收藏  举报