欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

cookie在javascript中的使用技巧以及隱私在服務(wù)器端的設(shè)置

 更新時(shí)間:2012年12月03日 17:04:43   作者:  
cookie在javascript中的使用技巧,需要的朋友可以參考下

讀取cookie字符串方法:

復(fù)制代碼 代碼如下:

alert(document.cookie); 

一個(gè)網(wǎng)站的cookie字符串包含了該站點(diǎn)域名下的所有cookie(javascript 可訪問(wèn)的,不包括 httponly 的cookie ),多個(gè)cookie之間用分號(hào)和一個(gè)空格隔開,最多一般是 20個(gè)或50個(gè),例如,包含2個(gè)cookie的字符串格式為

復(fù)制代碼 代碼如下:

document.cookie = "key1=value1; key2=value2"

一個(gè)cookie字符串最長(zhǎng)為4k,超出個(gè)數(shù)限制或長(zhǎng)度限制時(shí)將返回空值, cookie 個(gè)數(shù)超出限制時(shí),會(huì)造成另外一些 cookie 丟失,按規(guī)范,丟失的應(yīng)該是 最近、最少使用的,但是瀏覽器的實(shí)現(xiàn)并不完全遵循這個(gè)規(guī)范。

設(shè)置一個(gè)cookie的方法:

復(fù)制代碼 代碼如下:

document.cookie="key=value;expires=date;path=/;domain=xxx.com;secure";

要設(shè)置多個(gè)cookie 只要反復(fù)使用 document.cookie = XXX 即可,會(huì)自動(dòng)和其他cookie拼接成一個(gè)cookie字符串。

如果要讀取某個(gè)cookie的值,只能通過(guò)解析cookie字符串來(lái)得到。

下面是設(shè)置cookie時(shí)的幾個(gè)參數(shù)

1、名和值:key 為 cookie名稱,value為cookie值

2、過(guò)期時(shí)間:expires用于設(shè)置過(guò)期時(shí)間,為格林威治字符串格式,如 

復(fù)制代碼 代碼如下:

expires = new Date('2011-12-30').toUTCString(); //"Fri, 30 Dec 2011 00:00:00 GMT"

如果沒(méi)有設(shè)置過(guò)期時(shí)間,cookie將在瀏覽器關(guān)閉時(shí)失效。

 

3、所屬路勁:網(wǎng)站某張網(wǎng)頁(yè)中的腳本所設(shè)置的cookie默認(rèn)情況下只能供該網(wǎng)頁(yè)所在文件夾及其子文件夾中的網(wǎng)頁(yè)訪問(wèn),如 http://www.dbjr.com.cn/aa/1.html 所設(shè)置的cookie 不能被 http://www.dbjr.com.cn/bb/2.html 訪問(wèn),更多的時(shí)候都希望一個(gè)cookie能被本站所有網(wǎng)頁(yè)訪問(wèn),這就需要設(shè)置path屬性, path=/ 表示該cookie的所屬路勁是網(wǎng)站根目錄,這樣本站所有網(wǎng)頁(yè)都能訪問(wèn)。

4、所屬域名:cookie無(wú)法跨域訪問(wèn),一般情況下,cookie僅供本站使用,如果想在多個(gè)網(wǎng)站下共享,那么共享cookie的網(wǎng)站必須擁有同一個(gè)主域名,通過(guò)設(shè)置 domain屬性來(lái)實(shí)現(xiàn)。比如,如果想讓 www.dbjr.com.cn 和 bbs.jb51.net這兩個(gè)二級(jí)域名下的網(wǎng)站共享cookie,在設(shè)置cookie時(shí)需要設(shè)置domain=jb51.net

5、加密傳輸:如果一個(gè)cookie帶有secure屬性,那么cookie在傳輸?shù)椒?wù)器的過(guò)程中將使用加密數(shù)據(jù)的方式傳輸。

 

 

cookie字符串編碼:

cookie字符串中不能包含空格,分號(hào),逗號(hào)等特殊符號(hào),如果可能包含這些符號(hào),可以使用encodeURIComponent()函數(shù)將 cookie 的值進(jìn)行編碼,讀取 cookie 的值時(shí)再使用decodeURIComponent()函數(shù)把值進(jìn)行轉(zhuǎn)換回來(lái),如 document.cookie="key="+encodeURIComponent(value);

  

在服務(wù)器設(shè)置 cookie 并聲明其私密性(secure 及 httponly):

有時(shí)候?yàn)榘踩?,你可能需要限制一?nbsp;cookie 的訪問(wèn)

secure : 該 cookie 僅供 https 安全連接使用

httponly : cookie 僅供 http 傳輸過(guò)程中使用,javascript 不能訪問(wèn)該 cookie

例如,在PHP 中使用內(nèi)置函數(shù)setcookie() 設(shè)置一個(gè)具有私密性限制的 cookie

setcookie("UserIDCookie","123456",time()+60*30,'/','mytest.com',false,true);

其中第六個(gè)參數(shù) 表示是否僅供 https 連接使用,第 七個(gè)參數(shù) true 表示是否為 httponly

 

跨域請(qǐng)求及第三方 cookie ,以及 P3P(個(gè)人隱私保護(hù)策略):

瀏覽器的隱私設(shè)置(或者內(nèi)容設(shè)置,chrome 在高級(jí)設(shè)置--內(nèi)容設(shè)置 選項(xiàng))中,設(shè)置禁止使用第三方 cookie 時(shí),跨域請(qǐng)求(包括 iframe ,img ,javascript 文件等請(qǐng)求)無(wú)法發(fā)送屬于該域的 cookie .

例如, 通過(guò) iframe 引用一個(gè)跨域的 頁(yè)面 http://www.dbjr.com.cn/index.html ,即使瀏覽器中保存了屬于 other.com 域名下的某個(gè)名為 otherLoginFrag 的cookie  ,在 iframe 中請(qǐng)求 該頁(yè)面時(shí), otherLoginFrag 并不會(huì)隨請(qǐng)求一起發(fā)往 www.other.com 的服務(wù)器。

第三方 cookie 限制在不同的瀏覽器中可能略有不同,比如, safari 在禁用 第三方 cookie 時(shí),from 表單的提交也只有 post 方式才能提交 cookie .

如果在希望在瀏覽器禁用 第三方cookie 時(shí)仍能發(fā)送跨域請(qǐng)求的 cookie ,就需要在跨域的服務(wù)器中使用 P3P 響應(yīng)頭預(yù)先聲明允許發(fā)送的 cookie.

復(fù)制代碼 代碼如下:

 //php
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("UserIDCookie","123456");

相關(guān)文章

最新評(píng)論