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 SettingsCacheSpecial 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,它是一個只讀屬性。數據庫