HTTP代理原理以及HTTP隧道技术

通过HTTP协议与代理服务器建立连接,协议信令中包含要连接到的远程主机的IP和端口号,如果有需要身份验证的话还需要加上授权信息,服务器收到信令后首先进行身份验证,通过后便与远程主机建立连接,连接成功之后会返回给客户端200,表示验证通过,就这么简单,下面是具体的信令格式:

CONNECT 124.xxx.xxx.xx:443 HTTP/1.1 //建立http隧道要443端口
Proxy-Connection: Keep-Alive   //客户端到服务器端的连接持续有效
Content-Length: 0
Host: 124.xxx.xxx.xx   //主机地址
Proxy-Authorization:Basic YTph //身份验证信息
User-Agent: OpenFetion //可以标识请求者的信息,如什么浏览器类型和版本、操作系统、使用语言等信息

     其中Proxy-Authorization是身份验证信息,Basic后面的字符串是用户名和密码组合后进行base64编码的结果,也就是对username:password进行base64编码。

    其实编码对安全性没什么意义,base64严格意义上都已经不能算是加密了,现在信息安全这么受重视的年代,不需要密钥的加密算法还是叫编码更贴切一些,抓到这种包之后瞬间就可以得到用户名和密码。

HTTP/1.0 200 Connection established

    客户端收到收面的信令后表示成功建立连接,接下来要发送给远程主机的数据就可以发送给代理服务器了,代理服务器建立连接后会在根据IP地址和端口号对应的连接放入缓存,收到信令后再根据IP地址和端口号从缓存中找到对应的连接,将数据通过该连接转发出去。

                               

    简单的说,HTTP隧道技术就是把所有要传送的数据全部封装到HTTP协议里进行传送,HTTP隧道技术几乎支持了所有的上网方式,如:拨号上网、ADSL、Cable Modem、NAT透明代理、HTTP的GET型和CONNECT型代理、SOCKS4代理、SOCKS5代理等。

    另外HTTP隧道技术也用于木马的制作,如把HTTP数据包里Agent段设为IE,对外端口为80,然后把自己的小马注入IE进程,哪个防火墙能分辨出它是木马在发送数据?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

goland环境配置_Goland辅助工具goimports和gomodules

1、goimports工具goimports工具是Go官方提供的一种工具,它能够为我们自动格式化 Go 语言代码并对所有引入的包进行管理,包括自动增删依赖的包引用、将依赖包按字母序排序并分类。我们在使用Goland IDE的时候,建议使用goimports工具。它具备包…

石头剪刀布python代码_python实现石头剪刀布程序

本文实例为大家分享了python实现石头剪刀布的具体代码,供大家参考,具体内容如下 概述: 如果你和我一样是一个有着其他语言基础的编程者,那我想这个小程序对于你来说是小case。由于本人初学Python,就先拿这个熟悉熟悉一…

ubuntu/wireshark --Lua: Error during loading: [string /usr/share/wireshark/init.lua]:45问题解决

错误如下: 解决方案:修改init.lua 直接运行wireshark的话会报错: Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:45: dofile has been disabled 要对其进行修改,终端运行 sudo gedit /usr…

ubuntu下IP、DNS配置

一、配置ip ubuntu的网络配置信息放在 /etc/network/interfaces 中,如果配置动态获取ip,则在上述文件中加入以下内容:auto eth0iface eth0 inet dhcp如果配置静态ip,则添加如下内容:auto eth0 iface eth0 inet statica…

python向空列表添加列表_Python列表核心知识点汇总

千里之行,始于足下。要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好。今天带大家仔细温习一下Python的列表。温故而知新,不亦说乎。当然,温习的同时也要发散思考,因为有些看似无关紧要的、约定俗成的语言习…

sharepoint2010的弹出等待提示的对话框

根据MSDN的资料。我做了个测试&#xff0c;代码如下&#xff1a; <% Assembly Name"$SharePoint.Project.AssemblyFullName$" %> <% Assembly Name"Microsoft.Web.CommandUI, Version14.0.0.0, Cultureneutral, PublicKeyToken71e9bce111e9429c" …

java中输出值保留四位小数_Java工程师(3).变量和数据类型

变量什么是变量变量是内存中的一块存储空间&#xff0c;用于保存Java程序准备使用的数据。可以为变量赋予一个简短并易于记忆的名字方便我们使用变量的值。int 变量的声明因为经常要保存一些数据&#xff0c;所以变量是很常用的。使用变量必须先声明变量&#xff1a;int 变量的…

扫描路径_npj: 纳米团簇表面的自动扫描—吸附位点和扩散路径

海归学者发起的公益学术平台分享信息&#xff0c;整合资源交流学术&#xff0c;偶尔风月金属纳米团簇常用于催化&#xff0c;因具有较高的分散性&#xff0c;应用领域不断扩大。与较大的金属纳米颗粒相比&#xff0c;其固有活性通常要高出数倍。这种高出的催化活性主要归因于其…

pjsip的编译及简单使用

1.下载下载地址&#xff1a;http://www.pjsip.org/download.htm我下载的是pjproject-1.12.zip2.编译将下载的文件解压后&#xff0c;目录下有pjproject-vs8.sln&#xff0c;可以直接使用vs2005打开&#xff0c;目录下的readme.txt文件中有编译说明&#xff0c;关于windows下的注…

IOS之导航控制器与表视图

7.1 导航控制器 7.2 创建第一级控制器 7.3 第一个二级控制器 7.4 第一个三级控制器 7.5 第二个二级表控制器 7.6 第三个二级表控制器 7.7 第四个二级表控制器 7.8 第五个二级表视图控制器 7.8 第六个二级表视图控制器 7.1 导航控制器 关于导航控制器和表视图 导航控制器和表视图…

gin redis 链接不上_Redis 高并发问题,及解决方案!

&#xff08;一&#xff09;redis技术的使用&#xff1a;redis真的是一个很好的技术&#xff0c;它可以很好的在一定程度上解决网站一瞬间的并发量&#xff0c;例如商品抢购秒杀等活动。。。redis之所以能解决高并发的原因是它可以直接访问内存&#xff0c;而以往我们用的是数据…

任务管理平台_软件品质评测系统任务分发管理平台

testkuaibao|软件测试自学公众号1●为什么需要任务分发平台●在一个基本的评测系统中我们有了评测执行工具、评测数据、评测环境就能进行一次评测任务的执行&#xff0c;但现在是大数据时代&#xff0c;我们更多的需求是针对大量数据进行评测。比如在输入法评测中我们有10000个…

[转载]Visual Studio 2010敏捷利剑:详解Scrum

Visual Studio 2010敏捷利剑:详解Scrum 【IT168 专稿】随着微软Visual Studio 2010 Ultimate Beta2版本的发布&#xff0c;除了它提供协同一致的ALM(应用程序生命周期)管理工具外&#xff0c;MSF for Agile Software Development过程框架从4.2升级到5.0&#xff0c;并且是以Scr…

网站收录工具(php导航自动收录源码)_10步把企业网站优化做到极致,SEO优化的核心知识...

对于企业网站优化&#xff0c;重要的就3点&#xff0c;内容原创、外链建设、内部优化&#xff0c;其它网站优化也会涉及到这些&#xff0c;但是企业站就变的简单的多了&#xff0c;下面10步让你把企业网站优化做到极致。第一步&#xff1a;首先域就是让搜索引擎选择我们网站的主…

mysql not is null_转!!mysql 字段 is not null 和 字段 !=null

今天在查询数据时&#xff0c;查到包含一条某个时间startTime(该字段默认为null ) 为null的记录&#xff0c;想把它过滤&#xff0c;加了 startTime! null 的条件&#xff0c;结果记录都没了&#xff0c;应该用条件 is not null。转自&#xff1a;https://segmentfault.com/a/1…

myeclipse mysql连接_MyEclipse连接Mysql数据库的方法(一)

准备工作&#xff1a;MyEclipse使用的是2013版&#xff0c;mysql Ver 14.14 Distrib 5.6.281.jar包的下载(jdbc驱动)我下载的是&#xff1a;mysql-connector-java-5.1.7-bin.jar2.打开MyEclipse---->选择window---->选择open perspecctive---->myeclipse Database Exp…

c malloc 头文件_C/C++笔试题:主要考察C/C++语言基础概念算法及编程,附参考答案...

1.编写my_strcpy函数&#xff0c;实现与库函数strcpy类似的功能&#xff0c;不能使用任何库函数&#xff1b;答&#xff1a;char *strcpy(char *strDest, const char *strSrc){if ( strDest NULL || strSrc NULL)return NULL ;if ( strDest strSrc)returnstrDest ;char *tem…

SQLlite数据导入到mySQL_如何批量导入数据到Sqlite数据库

做android和ios开发的一般都用Sqlite数据库&#xff0c;有的时候数据需要批量导入&#xff0c;那么如何导入呢&#xff1f;在这里&#xff0c;介绍2种方法供大家参考。一、用sqlite命令以windows系统为例&#xff0c;linux下命令是一样的。1.安装sqlite工具包首先要安装有sqlit…

c/c++ 运行库

11.2 C/C运行库 11.2.1 C语言运行库 任何一个C程序&#xff0c;它的背后都有一套庞大的代码来进行支撑&#xff0c;以使得该程序能够正常运行。这套代码至少包括入口函数&#xff0c;及其所依赖的函数所构成的函数集合。当然&#xff0c;它还理应包括各种标准库函数的实现。…

下面哪个字段是http请求中必须具备的_理解HTTP协议-HTTP协议详解总结

一、HTTP协议的演进HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议&#xff0c;它不关心数据传输的细节&#xff0c;主要是用来规定客户端和服务端的数据传输格式&#xff0c;最初是用来向客户端传输HTML页面的内容。默认端口是80。1、HTTP 0.9版本 1991年这个版…