2017-05-02 14:15:48 阅读:1889次

预估稿费:120RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

socket简介

一个socket是一次网络通信中的一个端点。socket总是分为两部分:一个IP地址和一个端口。

例如:当您访问www.securelayer7.net时,你的计算机和网站的服务器正在使用socket(端点)进行通信。网站的端点将是:www.securelayer7.net:80,你的计算机的端点将是你的IP地址,后跟任何随机端口号,如192.168.0.111:6574

关于WebSocket

传统上,HTTP活动是由客户端请求资源而服务器来提供服务。服务器不能自己与客户端通话。但这个限制已经被新技术WebSocket消除了。

WebSockets提供持久连接,也称为客户端和服务器之间的全双工连接,双方可以随时使用该连接开始发送数据。

它是如何工作的?

客户端,如浏览器,加载具有WebSocket功能的网页。

页面的源代码负责创建WebSocket连接。

该脚本通过WebSocket握手建立WebSocket连接。此过程从客户端向服务器发送常规HTTP请求开始。此请求中包含upgrade请求头,通知服务器客户端希望建立WebSocket连接。

请求如下所示:

值得注意的是,WebSocket使用ws作为访问方案而不是http。所以,上面的请求访问了:ws://127.0.0.1:9000 / websocket

如果服务器支持WebSocket(针对上述请求),则它将在其响应中使用upgrade请求头进行回复。

响应如下所示:

在这个阶段,协议将从HTTP切换到WS。并且在浏览器和服务器之间建立全双工连接。

在这个例子中,我们有一个WebSocket功能,它回传客户端发送的所有单词。例如:如果用户键入单词“Hiii”,那么服务器也会用“Hiii”来回复。

请求:

响应:

用户界面:

WebSockets的安全隐患

A.跨站WebSocket劫持

注意下面的请求。Origin头有不同的来源127.0.0.1:5555。该请求是使用受害者的cookie发送到WebSocket服务器。这意味着可以使用WebSocket发送类似于CSRF的攻击。

但是,这种攻击不止像CSRF将POST数据发送到WebSocket服务器,它还会读取服务器响应。这是因为默认情况下WebSocket服务器不检查“Origin”头,它只是使用cookies检查经过身份验证的用户会话,并将响应发送回请求的“Origin”。

因此,在上述情况下,攻击者也可以读取响应,从而代表受害者控制双向通信。

防护:

检查请求的“Origin”头。既然,这个标题是为了防止跨源攻击。如果“Origin”不被信任,那么只需拒绝该请求。例如:如果您的网站的域名为www.example.com,请检查请求是否源自该来源,如果是,则处理该请求。如果否,则拒绝。

另一个解决方案是使用基于会话的个人随机令牌(就像CSRF-Tokens)。生成服务器端,并将它们放在客户端的隐藏字段中。并要求验证。

B.网络敏感信息泄露

就像HTTP是纯文本协议一样,WebSockets协议也称为纯文本。这导致攻击者捕获和修改网络上的流量。

防护:

建议使用加密(TLS)WebSockets连接。它的URI方案是wss://。默认端口为443。

如下演示,请求访问ws://127.0.0.1:900/websocket/。如果它是一个安全连接,那么请求将访问wss://127.0.0.1:900/websocket/。

C.拒绝服务

默认情况下,WebSockets允许无限制的连接导致DOS。以下是无限次连接到WebSocket服务器的小脚本。

执行此脚本后,让我们看看WebSocket服务器的日志:

我们可以看到,几秒钟内就已经完成了475个连接。这将耗尽服务器资源,最终导致DOS攻击。

防护:

使用基于IP的速率限制将有助于解决这个问题。

速率限制应允许5-10连接自由,即不进行任何安全检查。但在10个连接之后,如果同一个IP尝试连接,那么应该向用户显示验证码,以确保自动化工具不会产生恶意请求,同时合法用户不会被拒绝服务。

结论

WebSockets非常适合全双工通信,有许多聊天应用程序和社交网站使用。实现WebSockets使应用程序更具可用性和吸引力。但就像任何其他技术一样,也需要在考虑安全性的情况下使用。

参考文献

websocket网络层详解_【技术分享】WebSocket漏洞与防护详解相关推荐

  1. mysql slowlog中querytime分析_技术分享 | Slow Query Log 使用详解

    作者:宓祥康 爱可生交付服务部团队 DBA 擅长日志分析.问题排查等:主要负责处理 MySQL 与我司自研数据库自动化管理平台 DMP 的日常运维问题,对数据库及周边技术有浓厚的学习兴趣. 本文来源: ...

  2. mysql capi函数详解_技术分享|MySQLCAPI参数MYSQL_OPT_READ_TIMEOUT的一些行为分析

    作者:戴岳兵 MYSQL_OPT_READ_TIMEOUT 是 MySQL c api 客户端中用来设置读取超时时间的参数.在 MySQL 的官方文档中,该参数的描述是这样的: MYSQL_OPT_R ...

  3. html5 websocket java 聊天室_如何利用WebSocket实现网页版聊天室

    花了将近一周的时间终于完成了利用WebSocket完成网页版聊天室这个小demo,期间还走过了一段"看似弯曲"的道路,但是我想其实也不算是弯路吧,因为你走过的路必将留下你的足迹.这 ...

  4. python个人博客搭建说明书_技术分享|利用Python Django一步步搭建个人博客(二)...

    原标题:技术分享|利用Python Django一步步搭建个人博客(二) Hello,欢迎来到我们的"利用Python Django一步步搭建个人博客"系列的第二部分.在第一部分中 ...

  5. 对称加密算法_技术分享丨这是一篇简单的小科普——什么是对称加密算法?(下)...

    大家好~我是贾正经,又到了干货满满的技术分享趴啦~ 上期我们讲解了对称加密算法的小知识,并介绍了国密算法中SM4算法的原理.(上集回顾) 本期带大家了解一下分组密码的五个模式. 分组密码的模式 首先了 ...

  6. mysql优化说出九条_技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢?

    原标题:技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢? 背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 ...

  7. 干涉测量技术的应用_技术分享 | 石化行业测量仪表应用在线答疑

    众所周知,在化工和石化这类流程行业当中,稳定性和持续性是至关重要的生产"命脉",对于生产过程中使用的测量仪表有着极其严格的要求. 不仅所有测量仪表都必须满足严苛的国际标准,如PED ...

  8. 大表与大表join数据倾斜_技术分享|大数据技术初探之Spark数据倾斜调优

    侯亚南 数据技术处 支宸啸 数据技术处 在大数据计算中,我们可能会遇到一个很棘手的问题--数据倾斜,此时spark任务的性能会比预期要差很多:绝大多数task都很快执行完成,但个别task执行极慢或者 ...

  9. java生成sm4算法的对称密钥_技术分享丨这是一篇简单的小科普——什么是对称加密算法?(下)...

    原标题:技术分享丨这是一篇简单的小科普--什么是对称加密算法?(下) 大家好~我是贾正经,又到了干货满满的技术分享趴啦~ 上期我们讲解了对称加密算法的小知识,并介绍了国密算法中SM4算法的原理. 本期 ...

  10. hive中字段长度函数_技术分享:hive常用内部函数

    原标题:技术分享:hive常用内部函数 hive常用内部函数 hive是一种典型的数据仓库分析工具,常用语编写hql语句进行指标分析.在编写hql的过程中无疑会用到很多的函数,哪本章来编写一些常见的函 ...

最新文章

  1. JS性能--DOM编程之重排与重绘
  2. Oracle的不完全恢复
  3. Raft协议安全性保证
  4. Spring Data JPA框架
  5. 虚拟环境--virtualenv
  6. mac好用的图片转文字,ocr文字识别工具:Text Scanner
  7. 在线计算机性能测试,电脑性能检测
  8. 仿短视频竖屏播放美nv源码 源码仅供技术参考
  9. echar生成雷达图
  10. labview与android,LabVIEW与Android手机的无线视频实时传输
  11. pem证书转p12和p12证书转cert、key
  12. 网站服务器被劫持,网站服务器被劫持了怎么修复
  13. Amigo 源码解读
  14. 邓仰东专栏|机器学习的那些事儿(一)
  15. IDEA提交git代码,配置文件乱码
  16. 计算机三级网络技术路由配置,计算机三级网络技术(7):路由器配置及使用(上)...
  17. 音乐播放器的滚动歌词的实现
  18. 赤手空拳如何成就百万富翁?——网络营销之七(第四招:百度文库+)
  19. PHP在线自动发卡网源码 一键安装版
  20. Python可视化数据分析02、Scrapy框架-强化测试Scrapy-CSS

热门文章

  1. Why AG3 client 815 transport entries disabled
  2. 如何找到点击Object ID 白屏问题的root cause
  3. Triangle Leetcode
  4. php非,通过非数字和字符的方式实现PHP WebShell
  5. java python混合开发_Go+Python双语言混合开发
  6. Tomcat启动报内存溢出错误解决(两种)
  7. python读取大文件内容_Python模块linecache处理大文件
  8. php分页实例下载,PHP文件操作实例总结【文件上传、下载、分页】
  9. 最近公共祖先_LCA 最近公共祖先
  10. oracle删除unique key,概述Oracle Unique约束