1.Cookie的修改
(一)cookie長什么樣
cookie是一個個鍵值對(“鍵=值”的形式)加上分號空格隔開組合而成, 形如: "name1=value1; name2=value2; name3=value3"
注: Cookie(儲存在用戶本地終端上的數據),有時也用其復數形式 Cookies,指某些網站為了辨別用戶身份、進行 session 跟蹤而儲存在用戶本地終端上的數據(通常經過加密
(二)cookie設置語法:
document.cookie = "cookieName=mader; expires=Fri, 31 Dec 2017 15:59:59 GMT; path=/mydir; domain=cnblogs.com; max-age=3600; secure=true";
- cookieName=mader :name=value,cookie的名稱和值
- expires=Fri, 31 Dec 2017 15:59:59 GMT: expires,cookie過期的日期,如果沒有定義,cookie會在對話結束時過期。日期格式為 new Date().toUTCString()
- path=/mydir: path=path (例如 '/', '/mydir') 如果沒有定義,默認為當前文檔位置的路徑。
- domain=cnblogs.com: 指定域(例如 'example.com', '.example.com' (包括所有子域名), 'subdomain.example.com') 如果沒有定義,默認為當前文檔位置的路徑的域名部分。
- max-age=3600: 文檔被查看后cookie過期時間,單位為秒
- secure=true: cookie只會被https傳輸 ,即加密的https鏈接傳輸
(三)cookie的主要作用:
Cookie主要用在以下三個方面:
- 會話狀態管理(如用戶登錄狀態、購物車、游戲分數和其它需要記錄的信息)
- 個性化設置(如用戶自定義設置、主題等)
- 瀏覽器行為跟蹤(如跟蹤分析用戶行為)
(四)相關操作:
獲取cookie:
1 /** 2 * 獲取對應名稱的cookie 3 * @param name cookie的名稱 4 * @returns {null} 不存在時,返回null 5 */ 6 var getCookie = function (name) { 7 var arr; 8 var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); 9 if (arr = document.cookie.match(reg)) 10 return unescape(arr[2]); 11 else 12 return null; 13 };
cookie獲取正則解析:
"(^| )" + name + "=([^;]*)(;|$)" (^| )匹配cookie開頭或空格(cookie鍵值對之間用分號空格隔開),也就是cookie鍵值對的開始。接着是cookie的名稱name,([^;]*)匹配除分號以外的任意字符,也就是cookie鍵值對的值。最后(;|$)匹配分號或整個cookie的結尾,也就是cooke鍵值對的結尾。
更多正則的語法詳解請參考:
正則表達式的用法和常用實例【1】
刪除cookie:
1 /** 2 * 刪除cookie 3 * @param name cookie的名稱 4 */ 5 var delCookie = function (name) { 6 setCookie(name, ' ', -1); 7 };
設置要刪除的cookie的expires為過去的時間即可
修改cookie:
使用上面設置cookie的方法,重新給要修改的cookie賦值就行,這樣舊的就會被覆蓋掉
參考連接:https://www.cnblogs.com/maderlzp/p/7843365.html
2.Accept-Language:語言
Content-Language 是一個 entity header (實體消息首部),用來說明訪問者希望采用的語言或語言組合,這樣的話用戶就可以根據自己偏好的語言來定制不同的內容。
舉個例子,假如設置了這樣一條消息首部( "Content-Language: de-DE" ),那么說明這份文件是為說德語的人提供的(當然這並不意味着文件本身就是用德語寫的。比如,它可能是為說德語的人開設的英語教程的一部分,也就是用英語寫的)。
如果沒有指明 Content-Language,那么默認地,文件內容是提供給所有語言的訪問者使用的。多個語言標簽也是合法的,同樣的,這個首部還可以用來描述不同媒體類型的文件,而不單單局限於文本型文檔。
Accept-Language: zh-cn,zh;q=0.5
意思:瀏覽器支持的語言分別是簡體中文和中文,優先支持簡體中文。
詳解:
Accept-Language表示瀏覽器所支持的語言類型;
zh-cn表示簡體中文;zh 表示中文;
q是權重系數,范圍 0 =< q <= 1,q 值越大,請求越傾向於獲得其“;”之前的類型表示的內容,若沒有指定 q 值,則默認為1,若被賦值為0,則用於提醒服務器哪些是瀏覽器不接受的內容類型。
語法
Accept-Language: <language>
Accept-Language: <locale>
Accept-Language: *
// Multiple types, weighted with the quality value syntax:
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5
指令
<language>
用含有兩到三個字符的字符串表示的語言碼。
<locale>
完整的語言標簽。除了語言本身之外,還會包含其他方面的信息,顯示在中划線("-")后面。最常見的額外信息是國家或地區變種(如"en-US")或者表示所用的字母系統(如"sr-Lat")。其他變種諸如拼字法("de-DE-1996")等通常不被應用在這種場合。
*
任意語言;"*"表示通配符。
;q= (q-factor weighting)緊跟在所標識語言的后面
值代表優先順序,用相對質量價值 表示,又稱為權重。q是權重系數,范圍 0 =< q <= 1,q 值越大,請求越傾向於獲得其“;”之前的類型表示的內容,若沒有指定 q 值,則默認為1,若被賦值為0,則用於提醒服務器哪些是瀏覽器不接受的內容類型。
多個參數項用逗號隔開。
------------------------------------------------------------------------------------------------------------------
作者:white_HATmagic
來源:CSDN
原文:https://blog.csdn.net/qq_40491569/article/details/83472556
3.Referer來源偽造
X-Forwarded-For:ip偽造
Firefox中關於Referer的設置都在里,有兩個鍵值:network.http.sendRefererHeader (default=2) 設置Referer的發送方式,0為完全不發送,1為只在點擊鏈接時發送,在訪問頁面中的圖像什么的時候不發送,2為始終發送。參見Privacy Tip #3: Block Referer Headers in Firefoxnetwork.http.sendSecureXSiteReferrer (default=true) 設置從一個加密頁訪問到另外一個加密頁的時候是否發送Referer,true為發送,false為不發送。