1. 域名劫持:通過攻擊或偽造DNS,把目標(biāo)網(wǎng)站域名解析到錯(cuò)誤的地址,從而實(shí)現(xiàn)用戶無法訪問目標(biāo)網(wǎng)站。解決辦法:加速dns緩存記錄刷新的時(shí)間和數(shù)據(jù),或者更換dns服務(wù)提供商。
2. xss(跨站腳本攻擊):攻擊者在web頁面上插入惡意的script代碼,當(dāng)用戶瀏覽該頁面時(shí),嵌入的script代碼就會(huì)被執(zhí)行。
三種攻擊類型:
(1)基于反射的xss攻擊:通過站點(diǎn)服務(wù)器返回腳本,在客戶端執(zhí)行
(2)基于存儲(chǔ)的xss攻擊:通過發(fā)表含有惡意的script代碼的帖子或文章,存在服務(wù)器端,然后讓其他訪問者觸發(fā)執(zhí)行。
(3)基于dom或本地的xss攻擊:一般通過提供免費(fèi)wifi,直接在頁面插入惡意腳本,無需訪問服務(wù)器,就可以實(shí)現(xiàn)本地的攻擊。
解決辦法:對(duì)script標(biāo)簽進(jìn)行過濾和轉(zhuǎn)義,比如在前端就對(duì)搜索內(nèi)容進(jìn)行過濾,將轉(zhuǎn)成<script>使它執(zhí)行不了??傊詈檬乔岸魏蠖硕家羞^濾校驗(yàn)。
參考:https://www.cnblogs.com/lovesong/p/5199623.html
3. CSRF(跨站點(diǎn)請(qǐng)求偽造)
大致是:A登錄B并成功還沒退出的過程中,又點(diǎn)擊了惡意網(wǎng)站C,使C盜取了cookie信息,從而偽造A執(zhí)行惡意請(qǐng)求發(fā)向B。
防御措施:
(1)驗(yàn)證HTTP頭的一個(gè)字段Referer
因?yàn)樗涗浟嗽揌TTP請(qǐng)求的來源地址,比如說轉(zhuǎn)賬的請(qǐng)求,如果是偽造的,Referer里就是黑客自己的網(wǎng)站,銀行只需要驗(yàn)證Referer是否是來自銀行域名開頭的,就能判斷。
但是這種辦法有兩個(gè)弊端,1)Referer是瀏覽器提供的,低版本的瀏覽器容易被篡改,可靠性低。2)有些用戶擔(dān)心referer會(huì)把組織內(nèi)網(wǎng)某些信息泄露從而自己設(shè)置請(qǐng)求不提供referer,這樣使得有些網(wǎng)站會(huì)因?yàn)檎?qǐng)求沒有referer值而認(rèn)為是csrf攻擊從而拒絕合法用戶的訪問。
(2)在請(qǐng)求地址中添加token并驗(yàn)證
token是服務(wù)器端產(chǎn)生的,在用戶登錄后產(chǎn)生并放置于session中,是隨機(jī)產(chǎn)生的,這樣黑客網(wǎng)站就算在本地cookie中獲取了驗(yàn)證信息,但是沒有token驗(yàn)證,因此客戶端請(qǐng)求中攜帶的token和服務(wù)器端session中的token不一致,該請(qǐng)求也是無效的。而且token是有過期時(shí)間的。
這種辦法的弊端:如果通過get請(qǐng)求發(fā)送的,url會(huì)有token,黑客就能通過referer得到token值
(3)在 HTTP 頭中自定義屬性并驗(yàn)證
通過 XMLHttpRequest 這個(gè)類,可以一次性給所有該類請(qǐng)求加上 csrftoken 這個(gè) HTTP 頭屬性,并把 token 值放入其中。通過 XMLHttpRequest 請(qǐng)求的地址不會(huì)被記錄到瀏覽器的地址欄,也不用擔(dān)心 token 會(huì)透過 Referer 泄露到其他網(wǎng)站中去。
弊端:XMLHttpRequest 請(qǐng)求通常用于ajax方法中對(duì)頁面局部的異步刷新,且因?yàn)椴荒鼙粸g覽器所記錄下,后退前進(jìn)刷新和收藏都麻煩。
參考 https://blog.csdn.net/stpeace/article/details/53512283
4. http和https的區(qū)別:https是由網(wǎng)景公司設(shè)計(jì)在http的基礎(chǔ)上加入SSL(安全套接字secure sockets layer)協(xié)議,用于對(duì)http協(xié)議傳輸?shù)臄?shù)據(jù)進(jìn)行加密。
【SSL的基本思想是用非對(duì)稱加密來建立鏈接(握手階段),用對(duì)稱加密來傳輸數(shù)據(jù)(傳輸階段)。這樣既保證了密鑰分發(fā)的安全,也保證了通信的效率】
區(qū)別(1)https需要到ca申請(qǐng)證書
(2)http是超文本傳輸協(xié)議,明文傳輸。https有ssl的加密傳輸協(xié)議。
(3)連接方式不同,端口號(hào)也不同,http端口號(hào)是80,https端口號(hào)是443
(4)https雖然安全但是因?yàn)槲帐蛛A段分對(duì)稱加解密耗時(shí),所以相比http要慢的多。
(5)ssl證書需要錢,功能越強(qiáng)大的費(fèi)用越高。
4. cookie、sessionstorage、localstorage區(qū)別

5.?cookie和session的區(qū)別與聯(lián)系

參考:https://blog.csdn.net/duan1078774504/article/details/51912868
6. 常見的http狀態(tài)碼
參見:https://blog.csdn.net/grandpang/article/details/47446561