欧美人妻日韩精品,久久青青草原国产精品最新片,亚洲特级毛片av无码专区,一本一道色欲综合网中文字幕

鄭州信息科技中專職業(yè)學(xué)院中專部

不僅僅統(tǒng)招學(xué)歷喲

  • 熱門專業(yè)!
  • 大學(xué)校園!
  • 就業(yè)保障!
  • 拿學(xué)歷又能高薪就業(yè),誰能不愛!
了解詳情>
鄭州北大青鳥翔天信鴿參加“安心學(xué)習(xí)·放心就業(yè)”公約簽約儀式

讓每一個(gè)家庭“安心”、“放心”

  • 教學(xué)為本
  • 師愛為魂
  • 安心學(xué)習(xí)
  • 放心就業(yè)
了解詳情>
北大青鳥20周年慶典與總部年會鄭州翔天信鴿榮獲7項(xiàng)榮譽(yù)

深耕細(xì)作IT職業(yè)教育15載

  • 青鳥之星教學(xué)質(zhì)量大獎
  • 卓越風(fēng)云人物
  • 北大青鳥中心理事會成員
  • 七項(xiàng)榮耀載譽(yù)而行!
了解詳情>
鄭州北大青鳥學(xué)員喜獲全國IT精英挑戰(zhàn)賽冠軍

我們教學(xué)怎么樣

  • 實(shí)力見證
  • 網(wǎng)絡(luò)組一等獎
  • 網(wǎng)絡(luò)組二等獎
  • 軟件組四等獎
  • 200家校區(qū)脫穎而出!
了解更多>
北大青鳥榮獲315重承諾守信用放心品牌

北大青鳥職業(yè)IT20周年

  • 重承諾
  • 守信用
  • 放心品牌
  • 放心學(xué)習(xí)
  • 靠靠譜譜好就業(yè)!
了解更多>
學(xué)IT好工作高薪就業(yè)

我命由我不由天

  • 學(xué)個(gè)性的技術(shù)
  • 做愛做的事
  • 掙滿意的錢
  • 衣食無憂
  • 選擇寬且高大尚!
了解更多>
鄭州北大青鳥IT培訓(xùn)辦學(xué)14年

我們靠不靠譜

  • 14年辦學(xué)
  • 14年磨練
  • 14年成長
  • 14年探索
  • 只為讓每個(gè)學(xué)員成材!
了解更多>
鄭州北大青鳥IT培訓(xùn)

不打工也牛掰

  • 好工作
  • 好環(huán)境
  • 高薪資
  • 好課程
  • 支持你成為有“錢”人!
了解更多>

學(xué)IT就讀北大青鳥

  • 好工作
  • 好未來
  • 好老師
  • 好課程
  • 支持你成為受人尊敬的人!
了解更多>
get和post對比區(qū)別說緩沖區(qū)溢出
作者:北大青鳥 添加時(shí)間:03-06 瀏覽次數(shù):0

 網(wǎng)頁表單(form)提交時(shí)可選擇2種提交方式:get和post。我們大都知道提交表單數(shù)據(jù)時(shí)應(yīng)該使用post,也知道get方式不安全。是什么造成了get和post的區(qū)別,本文將從http協(xié)議層面分析,來說說get和post境遇不同的根本原因。

 
先來看看一個(gè)簡單的hello woeld頁面的http消息:
瀏覽器請求”http://127.0.0.1/test/hello.html”發(fā)送的http協(xié)議報(bào)文:
GET /test/hello.html HTTP/1.1
Host: 127.0.0.1:80
User-Agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.1.11) Gecko/20071204 Ubuntu/7.10 (gutsy) Firefox/2.0.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
捕獲http報(bào)文需要使用工具程序(這里我使用自己編寫的TCP代理程序來截獲http消息)。請求協(xié)議報(bào)文第1行“GET”表明了提交方式,“/test/hello.html”表示請求的文家及路徑,“HTTP/1.1”表示使用的http協(xié)議版本。第2行表示請求的服務(wù)器IP和端口,注意“80”是默認(rèn)添加上的端口號。后面幾行描述了客戶端系統(tǒng)、瀏覽器的一些信息。
WEB服務(wù)器應(yīng)答報(bào)文:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=GBK
Content-Length: 145
Date: Wed, 26 Dec 2007 18:00:59 GMT
 
<!– HTML網(wǎng)頁文件實(shí)例  –>
<html>
    <head>
        <title>你好,世界!</title>
    </head>
    <body>
        <h3>世界你好!</h3>
    </body>
</html>
“200 OK”表示服務(wù)應(yīng)答編碼,表示成功,常見的還有“404”、“500”等。“Content-Length: 145”表示應(yīng)答網(wǎng)頁的長度,“Date: Wed, 26 Dec 2007 18:00:59 GMT”是應(yīng)答時(shí)間,在這之后空一行,然后是網(wǎng)頁正文。

對于http通訊,總是像上面這樣客戶端(瀏覽器)發(fā)出請求,服務(wù)端(web服務(wù)器)給予應(yīng)答,表單提交也同樣如此,下面分析一個(gè)簡單的表單。
get和post對比區(qū)別說緩沖區(qū)溢出
表單提交
1. get方式提交:
<form name="form1" method="get" action="result.jsp">
姓名:<input type="text" name="userName" value=""><br>
密碼:<input type="password" name="password" value=""><br>
性別:<input type="radio" name="sex" value="m">男 <input type="radio" name="sex" value="f">女<br>
愛好:<input type="checkbox" name="interest" value="dance">跳舞
         <input type="checkbox" name="interest" value="sing">唱歌
         <input type="checkbox" name="interest" value="basketball">籃球<br>
<br>    <input type="submit" name="submit" value="提交">
</form>
注意在<form>標(biāo)簽中,method=”get”。
http請求協(xié)議報(bào)文:
GET /get_post/result.jsp? userName=lisi&password=1111&sex=f&interest=dance&interest=sing&submit=%CC%E1%BD%BB HTTP/1.1
Host: 127.0.0.1:8090
User-Agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.1.11) Gecko/20071204 Ubuntu/7.10 (gutsy) Firefox/2.0.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
get方式表單的提交數(shù)據(jù)顯示在請求http協(xié)議的第一行,和請求地址用“?”間隔(這一行同樣會顯示在瀏覽器地址欄中)。從“ userName=lisi&password=1111&sex=f&interest=dance&interest=sing&submit=%CC%E1%BD%BB”可以分析出表單提交的數(shù)據(jù):

■ userName=lisi 姓名文本框輸入的是“lisi”
■ password=1111 密碼文本框輸入的是“111”
■ sex=f 性別單選鈕選擇的是“女”
■ interest=dance&interest=sing 愛好多選框選擇了2個(gè):跳舞、唱歌
■ submit=%CC%E1%BD%BB 點(diǎn)擊“提交”按鈕進(jìn)行提交(submit按鈕也是表單元素,同樣會提交給服務(wù)端),“%CC%E1%BD%BB”是按鈕的value屬性”提交”兩個(gè)漢字的gb2312的16位編碼。
下面看看post方式和get有什么不同。
2. post方式提交:
將<form>中的method=”get”改為method=”post”,提交同樣的數(shù)據(jù),http請求協(xié)議報(bào)文如下:
POST /get_post/result.jsp HTTP/1.1
Host: 127.0.0.1:8090
User-Agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.1.11) Gecko/20071204 Ubuntu/7.10 (gutsy) Firefox/2.0.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 82
 
userName=lisi&password=1111&sex=f&interest=dance&interest=sing&submit=%CC%E1%BD%BB
區(qū)別
對比一下get和post方式的請求http協(xié)議報(bào)文,注意以下幾點(diǎn):
■ 協(xié)議第一行起始,get方式聲明為“GET”,post方式聲明為“POST”。
■ 提交數(shù)據(jù)“userName=lisi&password=1111&sex=f&interest=dance&interest=sing&submit=%CC%E1%BD%BB”,對于get方式在第一行,對于post方式在最后一行,兩種方式對表單數(shù)據(jù)的編碼完全一致。
■ post方式多了3行: Content-Type: application/x-www-form-urlencoded,Content-Length: 82,和數(shù)據(jù)前的空行。
僅從以上幾點(diǎn),很難想象出get和post究竟有什么實(shí)質(zhì)性的區(qū)別,為什么在使用中差別如此之大,真是以訛傳訛嗎?就像“菠菜含鐵量高”被誤傳了十來年,直到有人證明當(dāng)年計(jì)算鐵含量時(shí)標(biāo)錯(cuò)了小數(shù)點(diǎn)。
實(shí)質(zhì)差別只有一點(diǎn):“Content-Length: 82”,在post中表示了提交數(shù)據(jù)“userName=lisi&password=1111&sex=f&interest=dance&interest=sing&submit=%CC%E1%BD%BB”的長度,而get中沒有。

正是此導(dǎo)致服務(wù)端在接收get提交的數(shù)據(jù)時(shí),極易出現(xiàn)一個(gè)安全漏洞:緩沖區(qū)溢出。
緩沖區(qū)溢出
■ 名詞解釋 【緩沖區(qū)溢出】: 通過往程序的緩沖區(qū)寫超出其長度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達(dá)到攻擊的目的。
服務(wù)端程序在接收客戶端表單提交的數(shù)據(jù)時(shí),需要先將數(shù)據(jù)存儲到一個(gè)內(nèi)存空間,然后做解析等后續(xù)工作,這個(gè)內(nèi)存空間一般稱之為接收緩沖區(qū)。對于post數(shù)據(jù)因?yàn)橛蠧ontent-Length標(biāo)記,服務(wù)端可以按標(biāo)記的長度創(chuàng)建一個(gè)等于或稍大于提交數(shù)據(jù)的緩沖區(qū);對于get,因?yàn)槭孪炔恢捞峤坏臄?shù)據(jù)有多少,需要估計(jì)緩沖區(qū)長度,如果緩沖區(qū)很大而接收數(shù)據(jù)很小會造成內(nèi)存浪費(fèi),而如果緩沖區(qū)小于接收數(shù)據(jù),就可能造成緩沖區(qū)溢出。

緩沖區(qū)溢出
“聰明的”黑客,會在溢出部分放置特殊的代碼來攻陷你的服務(wù)器。
現(xiàn)代的WWW服務(wù)器并不是如此弱不禁風(fēng),但完全、有效的解決緩沖區(qū)溢出漏洞卻很難,操作系統(tǒng)、C語言程序都提供了滋生此問題的溫床,至今還有相當(dāng)部分的WWW服務(wù)軟件有此漏洞,可以搜索一下“get 緩沖區(qū)溢出”看看。
get和post對比區(qū)別說緩沖區(qū)溢出
這也就是不建議使用get方式提交表單數(shù)據(jù)的原因所在。
深入思考去學(xué)習(xí)
隨便翻看http入門書籍,都有g(shù)et和post的區(qū)別的描述,但往往只說其然,不說其所以然,而年輕的程序員往往記憶力很好,卻忽略了更重要的“思考”。
本篇文章的另一個(gè)目的是關(guān)于學(xué)習(xí)方法的: 要習(xí)慣于深入思考,要懷著疑問、探索、證明的態(tài)度去學(xué)習(xí),哪怕是被廣泛認(rèn)為是“公理”的觀點(diǎn)。
文章到此結(jié)束,純技術(shù)文章,由鄭州北大青鳥http:///整理,轉(zhuǎn)載請注明!

本文由站河南北大青鳥校區(qū)整編而成,如需了解更多IT資訊類的文章、新聞、課程和學(xué)習(xí)技巧、就業(yè)案例、招生詳情等問題,可以對在線咨詢老師進(jìn)行一對一問答!


分享到: