注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

phperwuhan的博客

记载一个phper的历程!phperwuhan.blog.163.com

 
 
 

日志

 
 

关于压缩包和Transfer-Encoding: chunked  

2009-10-28 17:20:20|  分类: tcp/ip |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来源:http://finalbsd.blogbus.com/logs/23164764.html

已知技術
1)在IP層可以使用IP Fragment將含有惡意程式之封包切割為多個封包
,以避免被
Network IDS抓到Pattern
2)在TCP也可以將將含有惡意程式之TCP連線切成多個TCP Segments,以
避免被
Network IDS抓到Pattern
3)HTTP 1.1裡支援zlib/gzip等壓縮,可以將有惡意程式(通常為含有
Java Script/
VB Script 之HTML檔)壓縮而不被發現

以1,2來說,目前的Snort IDS有IP Fragement與TCP 重組的弁
但是,在前一陣子的survey中,我發現HTTP 1.1裡除了支源zlib/gzip等
壓縮,HTTP/1.1
裡還支援了Transfer-Encoding 可以在傳輸時加上類似unix裡split
能,將一份要
傳送的message切割成多份

zlib與gzip等Content-Encoding與Transfer-Encoding不同處在於:
Content-Encoding
為對文件本身加密,HTTP/1.1傳輸只用Content-Encoding的header說明
文件的壓縮格式,
並沒有必要要處理.但是Transfer-Encoding為在Content-Encoding之
外,再另加的
Encoding.

HTTP response分為三部份, HTTP_RESPONSE_LINE,
HTTP_MESSAGE_HEADER與
HTTP_MESSAGE_BODY

範例:
其中從Content-Type到Content-Length為HTTP_MESSAGE_HEADER,之後

HTTP_MESSAGE_BODY

========不加Transfer-Encoding之HTTP response
HTTP/1.1 200 OK
Content-Type: text/html
Host:
http://www.csie.nctu.edu.tw
Content-Length: 25

hello world
========

若在HTTP_MESSAGE_HEADER中有Transfer-Encoding: chunked 字樣,則
HTTP_MESSAGE_BODY
會用chunked的encoding方式傳送.目前chunked encoding是HTTP/1.1
明定要支援的. 如下
面的http response即為加上chunked Transfer-Encoding之結果. 本
來有25個bytes現在被
分割為0x6, 0xb,0x7等三個部份. 在chunked Transfer-Encoding是採
用十六進位來表示,
與Content-Length採用10進位並不同

========外加Transfer-Encoding之HTTP response
HTTP/1.1 200 OK
Content-Type: text/html
Host:
http://www.csie.nctu.edu.tw
Transfer-Encoding: chunked

6

b
hello world
7

0

  评论这张
 
阅读(843)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017