查看單個文章
舊 2006-02-01, 01:30 AM   #6 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

通通透透瞭解到底什麼是Cookies,作用是什麼!

Cookies現在經常被大家提到,那麼到底什麼是Cookies,它有什麼作用呢?

Cookies是一種能夠讓網站服務器把少量資料儲存到客戶端的硬碟或記憶體,或是從客戶端的硬碟讀取資料的一種技術。Cookies是當你瀏覽某網站時,由Web服務器置於你硬碟上的一個非常小的文本文件,它可以記錄你的用戶ID、密碼、瀏覽過的網頁、停留的時間等訊息。當你再次來到該網站時,網站通過讀取Cookies,得知你的相關資訊,就可以做出相應的動作,如在頁面顯示歡迎你的標語,或者讓你不用輸入ID、密碼就直接登入等等。

從本質上講,它可以看作是你的身份證。但Cookies不能作為程式碼執行,也不會傳送病毒,且為你所專有,並只能由提供它的服務器來讀取。儲存的訊息片斷以「名/值」對(name-value pairs)的形式儲存,一個「名/值」對僅僅是一條命名的資料。一個網站只能取得它放在你的電腦中的訊息,它無法從其它的Cookies文件中取得訊息,也無法得到你的電腦上的其它任何東西。

Cookies中的內容大多數經過了加密處理,因此一般用戶看來只是一些毫無意義的字母數位組合,只有服務器的CGI處理程序才知道它們真正的含義。

由於Cookies是我們瀏覽的網站傳輸到用戶電腦硬碟中的文本文件或記憶體中的資料,因此它在硬碟中存放的位置與使用的操作系統和瀏覽器密切相關。在Windows 9X系統電腦中,Cookies文件的存放位置為C:WindowsCookies,在Windows NT/2000/XP的電腦中,Cookies文件的存放位置為Cocuments and Settings用戶名Cookies。

硬碟中的Cookies文件可以被Web瀏覽器讀取,它的指令格式為:用戶名@網站位址[數位].txt。如筆者電腦中的一個Cookies檔案名為:ch@163[1].txt。要注意的是:硬碟中的Cookies屬於文本文件,不是程序。

Cookies的設定

你可以在IE的「工具/Internet選項」的「一般」選項項中,選項「設定/檢視文件」,檢視所有儲存到你電腦裡的Cookies。這些文件通常是以user@domain格式命名的,user是你的本地機用戶名,domain是所訪問的網站的域名。如果你使用NetsCape瀏覽器,則存放在「CROGRAMFILESNETS- CAPEUSERS」裡面,與IE不同的是,NETSCAPE是使用一個Cookie文件記錄所有網站的Cookies。

我們可對Cookie進行適當設定:開啟「工具/Internet選項」中的「隱私」選項項(注意該設定只在IE6.0中存在,其他版本IE可以按下「工具/Internet選項」「安全」標籤中的「自訂等級」按鈕,進行簡單調整),調整Cookie的安全等級。通常情況,可以調整到「中高」或者「高」的位置。多數的論壇站點需要使用Cookie訊息,如果你從來不去這些地方,可以將安全級調到「阻止所有Cookies」;如果只是為了禁止個別網站的Cookie,可以按下「編輯」按鈕,將要遮閉的網站增加到列表中。在「進階」按鈕選項中,你可以對第一方Cookie和第三方的Cookie進行設定,第一方Cookie是你正在瀏覽的網站的Cookie,第三方Cookie是非正在瀏覽的網站發給你的Cookie,通常要對第三方Cookie選項「拒絕」。你如果需要儲存Cookie,可以使用IE的「匯入匯出」功能,開啟「文件/匯入匯出」,按提示操作即可。

Cookies的寫入與讀取

Cookies集合是附屬於Response對象及Request對象的資料集合,使用時需要在前面加上Response或Request。

用於給客戶端機傳送Cookies的語法通常為:

當給不存在的Cookies集合設定時,就會在客戶端機新增,如果該Cookies己存在,則會被替代。由於Cookies是作為HTTP傳輸的頭訊息的一部分發給客戶端機的,所以向客戶端機傳送Cookies的程式碼一般放在傳送給瀏覽器的HTML文件的標記之前。

如果用戶要讀取Cookies,則必須使用Request對象的Cookies集合,其使用方法是:

需要注意的是,只有在服務器未被下載任何資料給瀏覽器前,瀏覽器才能與Server進行Cookies集合的資料交換,一旦瀏覽器開始接收Server所下載的資料,Cookies的資料交換則停止,為了避免錯誤,要在程序和前面加上response.Buffer=True。

Cookies的套用

幾乎所有的網站設計者在進行網站設計時都使用了Cookie,因為他們都想給瀏覽網站的用戶提供一個更友好的、人文化的瀏覽環境,同時也能更加準確地收集訪問者的訊息。

網站瀏覽人數管理

由於代理服務器、快取等的使用,唯一能說明 網站精確統計來訪人數的方法就是為每個訪問者建立一個唯一的ID。使用Cookie,網站可以完成以下工作:測定多少人訪問過;測定訪問者中有多少是新用戶(即第一次來訪),多少是老用戶;測定一個用戶多久訪問一次網站。

通常情況下,網站設計者是借助後台資料庫來實現以上目的的。當用戶第一次訪問該網站時,網站在資料庫中建立一個新的ID,並把ID通過Cookie傳送給用戶。用戶再次來訪時,網站把該用戶ID對應的計數器加1,得到用戶的來訪次數或判斷用戶是新用戶還是老用戶。

按照用戶的喜好設定網頁外觀  

有的網站設計者,為用戶提供了改變網頁內容、佈局和顏色的權力,允許用戶輸入自己的訊息,然後通過這些訊息對網站的一些參數進行修改,以設定網頁的外觀。

在電子商務站點中實現諸如「購物籃」等功能

可以使用Cookie記錄用戶的ID,這樣當你往「購物籃」中放了新東西時,網站就能記錄下來,並在網站的資料庫裡對應著你的ID記錄當你「買單」時,網站通過ID檢索資料庫中你的所有選項就能知道你的「購物籃」裡有些什麼。

在一般的事例中,網站的資料庫能夠儲存的有你所選項的內容、你瀏覽過的網頁、你在表單裡填寫的訊息等;而包含有你的唯一ID的Cookie則儲存在你的電腦裡。

Cookies的缺陷

Cookie雖然被廣泛的套用,並能做到一些使用其它技術不可能實現的功能。但也存在一些不夠完美的方面,給套用帶來不便。

多人共用一台電腦的問題

任何公共場合的電腦或者許多在辦公室或家裡使用的電腦,都會同時被兩個以上的人使用。這樣,當你用它在網上超市購物時,網上超市或網站會在這台電腦上留下一個Cookie,將來也許就會有某個人試圖使用你的賬戶購物,帶來了不安全的可能。當然,在一些使用多用戶操作系統如Windows NT或UNIX的電腦上,這並不會成為一個問題。因為在多用戶操作系統下不同的賬戶的Cookie分別放在不同的地方。

Cookies被移除時

假如你的瀏覽器不能正常工作,你可能會移除電腦上所有的臨時Internet文件。然而,一旦這樣操作以後,你就會丟掉所有的Cookies文件。當你再次訪問一個網站時,網站會認為你是一位新用戶並分配給你一個新的用戶ID以及一個新的Cookie。結果將會造成網站統計的新老用戶比發生偏差,而你也難以恢復過去儲存的參數選項。

一人使用多台電腦時

有的人一天之中經常使用一台以上的電腦。例如在辦公室裡有一台電腦、家裡有一台、還有移動辦公用的筆記型電腦。除非網站使用了特別的技術來解決這一問題,否則,你將會有三個不同的Cookies文件在這三台電腦上,而在三台電腦上訪問過的任何網站都將會把你看成三個不同的用戶。


防範Cookies洩密

想知道你訪問的網站是否在你的硬碟或記憶體中寫入了Cookies訊息嗎?只需執行下面的操作步驟,就可以瞭解和控制你正在訪問的網站的Cookies訊息。

步驟一 點擊IE視窗中的「工具」 「In-ernet選項」,開啟「Internet選項」設定視窗;

步驟二 點擊「Internet選項」設定視窗中的「安全」標籤,然後再點擊「自訂等級」按鈕,進入「安全性設定」視窗;

步驟三 找到「安全性設定」視窗中的「Cookies」設定項。「Cookies」設定項下有兩個分選項,其中「允許使用儲存於在您電腦上的Cookies」是針對儲存於在用戶電腦硬碟中的Cookies文件;「允許使用每個對話Cookies(未儲存於)」是針對儲存於在用戶電腦記憶體中的Cookies訊息。儲存於在硬碟中的Cookies文件是永久存在的,而儲存於在記憶體中的Cookies訊息是臨時的。要想IE在即將接收來自Web站點的所有Cookies時進行提示,可分別選項上面兩個分選項中的「提示」項。當然,你也可以選項「啟用」,允許IE接受所有的Cookies訊息(這也是IE的預設選項);選項「禁止」,則是不允許Web站點將Cookies儲存於到您的電腦上,而且Web站點也不能讀取你電腦中已有的Cookies。

IE6.0提供了更為可靠的個人隱私及安全保護措施,可以讓用戶來控制瀏覽器向外傳送訊息的多少。在「Internet 選項」視窗中新增了「隱私」選項項(圖1),用戶可以在其中直接設定瀏覽時的隱私等級,按需要控制其他站點對自己電腦所使用的Cookies。如果我們正在瀏覽的站點使用了Cookie,那麼在瀏覽器狀態列中會有一個黃色驚歎號的標記,雙按後可開啟「隱私報告」對話視窗,用戶可以在其中檢視具體的隱私原則,還可直接點擊「設定」按鈕後在上述「隱私」選項項中調節安全隱私等級。

在「一般」選項項中還增加了「移除Cookies」按鈕(圖2),方便用戶直接清除本機機上的Cookies。另外,在「工具」 「選項」 「進階」選項項中也增加了一些進一步提高安全性的選項(如關閉瀏覽器時清空Internet臨時文件)。其實,如何更好地保護個人隱私和安全是微軟下一代「.NET」戰略軟體中的關鍵技術,現在IE6.0已經嘗試著邁出了第一步。

另外,由於Cookies的訊息並不都是以文件形式存放在電腦裡,還有部分訊息儲存在記憶體裡。比如你在瀏覽網站的時候,Web服務器會自動在記憶體中產生Cookie,當你關閉IE瀏覽器的時候又自動把Cookie移除,那樣上面介紹的兩種方法就起不了作用,我們需要借助註冊表編輯器來修改系統設定。要注意的是,修改註冊表前請作製作制作備份,以便出現問題後能順利恢復。

執行Regedit,找到如下鍵值:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionInternet Settings快取Special PathsCookies,這是Cookies在記憶體中的鍵值,把這個鍵值移除。至此Cookies無論以什麼形式存在,我們都不用再害怕了。

最後有必要說明的一點是:杜絕Cookies雖然可以增強你電腦的訊息安全程度,但這樣做同樣會有一些弊端。比如在一些需要Cookies支持的網頁上,會發生一些莫名其妙的錯誤,典型的例子就是你以後不能使用某些網站的免費信箱了。

Cookies欺騙

通過份析Cookie的格式,我們知道,最後兩項中分別是它的URL路徑和域名,服務器對Cookie的識別靠的就是這兩個參數。正常情況下,我們要瀏覽一個網站時輸入的URL便是它的域名,需要經過域名管理系統DNS將其轉化為IP位址後進行連接。若能在DNS上進行一些設定,把目標域名的IP位址對應到其它站點上,我們便可以非法訪問目標站點的Cookie了。

要進行Cookies欺騙,其實很簡單。比如在Win9X下的安裝目錄下,有一名為hosts.sam的文件,以文本方式開啟後會看到這樣的格式:

127.0.0.1  localhost

經過設定,便可以實現域名解析的本地機化,只需將IP和域名依上面的格式增加到文件中並另存為hosts即可。hosts文件實際上可以看成一個本機機的DNS系統,它可以負責把域名解釋成IP位址,它的優先權比DNS服務器要高,它的具體實現是TCP/IP傳輸協定中的一部分。

比如我們要讀取的目標站點 www.abc.com 所產生的Cookies訊息,可以借助www.def.com(自己的站點)。在www.def.com 存放用來進行欺騙所需的文件,通過它讀取和修改對方的Cookie。

步驟一 ping出www.def.com 的IP位址:

ping www.def.com

Reply from 192.168.0.1: bytes=32 time=20ms TTL=244

然後修改hosts.sam文件如下:

192.168.0.1 www.abc.com

並儲存為hosts文件。

步驟二 讀取Cookies訊息:

將用來讀取Cookie的頁面傳至www.def.com ,此時連上www.abc.com,由於我們進行本機機DNS域名解析的修改,這時網路連接的並不是www.abc.com,而是www.def.com 。

這樣www.abc.com設在本地機的Cookie便可被讀出。

步驟三 同樣道理,你可對讀出的資料進行修改,並可將修改後的訊息寫入Cookie中。修改完畢後,刪掉hosts文件,再重新進入www.abc.com,此時所使用的Cookies資料就是你制定的資料。

總之,在某種程度上雖然可以實現Cookies的欺騙,給網路套用帶來不安全的因素,但Cookies文件本身並不會造成用戶隱私的洩露,也不會給黑客提供木馬程序的媒體,只要合理使用,它們會給網站管理員進行網站的維護和管理以及廣大用戶的使用都帶來便利。


Cookies集合具有以下幾種內容

1.Expires內容:此內容用來給Cookies設定一個期限,在期限內只要開啟網頁就可以使用被儲存的Cookies,如果過了此期限Cookies就自動被移除。如:

設定Cookies的有效期到2004年4月1日,到時將自動移除。如果一個Cookies沒有設定有效期,則其生命週期從開啟瀏覽器開始,到關閉瀏覽器結束,每次執行後生命週期將結束,下次執行將重新開始。

2.Domain內容:這個內容定義了Cookies傳送資料的唯一性。若只將某Cookies傳送給搜狐主頁時,則可使用如下程式碼:

3.Path內容:定義了Cookies只發給指定的路徑請求,如果Path內容沒有被設定,則使用套用軟體的預設路徑。

4.Srcure內容:指定Cookies能否被用戶讀取。

5.Haskeys內容:如果所請求的Cookies是一個具有多個鍵值的Cookies字典,則返回True,它是一個只讀內容。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次