這篇文章寫的是關于Cookie的存儲和獲取,小白們可以看一看看,大佬飄過~
首先,我們既然說到cookie的存儲和獲取,我們就要明确什麼是cookie?
Cookie說白了就是儲存在用戶本地終端上的數據,指的是某些網站為了辨别用戶身份、進行 session 跟蹤而儲存在用戶本地終端上的數據,通常會經過加密。也可以叫做浏覽器緩存。
Cookie 主要是在 HTTP 協議下,服務器或腳本可以維護客戶工作站上信息的一種方式。
Cookie大概就是這樣的一個意思,相信大家了解了什麼是cookie之後,現在讓我們進入今天我們的主要内容:cookie的獲取和存儲。
在做用戶登錄的時候經常會用到cookie,那麼如何将用戶名和密碼存儲在cookie中呢?那麼有如何獲取cookie中的數據呢,接下來我來給大家詳細講解。
1. 利用jQuery.cookie.js保存數據。
在頁面中引入jQuery.cookie.js,如果在你打開的頁面中有"記住密碼"這個單選框,判斷checked是否為true。如果"是",獲取用戶名和密碼的值,$.cookie(id,對應id存儲的值,{expires: 存儲的期限})
if($("#rememberme").prop("checked") == true) {
var userName = $("#user").val();
var passWord = $("#psw").val();
$.cookie("rememberme", "true", {expires: 7}); // 存儲一個帶7天期限的 cookie
$.cookie("user", userName, {expires: 7}); $.cookie("psw", passWord, {expires: 7});
如果沒有勾選"記住密碼",設置存儲期限為-1即可。這樣提交之後cookie就會存儲你的數據了。
可以打開控制台,選中Application>Storage>Cookie之中進行查看。
2. 如何獲取cookie中的數據?
方法:$.cookie(name)
舉例:$.cookie('rememberme'),$.cookie('user'),$.cookie('password')
如果說cookie設置的期限還沒有過,我們就需要将cookie中的數據顯示到頁面上,先判斷cookie中的rememberme是否為true,如果是true,将cookie中的值賦給對應的文本框,勾選"記住密碼"單選框。
if($.cookie('rememberme')==='true'){
$("#user").val($.cookie('user'));
$("#psw").val($.cookie('psw')); 4 $("#rememberme").prop('checked',true);
}
以上就是我們今天所講的到的内容,對于cookie的獲取和存儲。
盡管cookie沒有病毒那麼危險,但是呢,它仍包含了一些敏感信息:用戶名,計算機名,使用的浏覽器和曾經訪問的網站。用戶不希望這些内容洩漏出去,尤其是當其中還包含有私人信息的時候。
這其實不是危言聳聽,一種名為跨站腳本攻擊(Cross site scripting)就可以達到此目的。通常跨站腳本攻擊往往就是利用網站漏洞在網站頁面中植入腳本代碼或網站頁面引用第三方法腳本代碼,均存在跨站腳本攻擊的可能,在受到跨站腳本攻擊時,腳本指令将會讀取當前站點的所有 Cookie 内容(這個時候已不存在 Cookie 作用域限制),然後通過某種方式将 Cookie 内容提交到指定的服務器(如:AJAX)。一旦 Cookie 落入攻擊者手中,它将會重現其價值。
建議開發人員在向客戶端 Cookie 輸出敏感的内容時(比如:該内容能識别用戶身份):
1)設置該 Cookie 不能被腳本讀取,這樣在一定程度上解決上述問題。
2)對 Cookie 内容進行加密,在加密前嵌入時間戳,保證每次加密後的密文都不一樣(并且可以防止消息重放)。
3)客戶端請求時,每次或定時更新 Cookie 内容(即:基于第2小條,重新加密)
4)每次向 Cookie 寫入時間戳,數據庫需要記錄最後一次時間戳(防止 Cookie 篡改,或重放攻擊)。
5)客戶端提交 Cookie 時,先解密然後校驗時間戳,時間戳若是小于數據數據庫中記錄,即意味發生攻擊。
基于上述建議,即使 Cookie 被竊取,卻因 Cookie 被随機更新,且内容無規律性,攻擊者無法加以利用。另外利用了時間戳另外一大好處就是防止 Cookie 篡改或重放。
Cookie 竊取:搜集用戶cookie并發給攻擊者的黑客。攻擊者将利用cookie信息通過合法手段進入用戶賬戶。
Cookie 篡改:利用安全機制,攻擊者加入代碼從而改寫 Cookie 内容,以便持續攻擊。
關于cookie的危害暫時就先講到這裡,我們下次再見~
投稿:暗盾安全,殇宇
,