跨站請求僞造是指攻擊者能夠在第三方站點製造HTTP請求並以用戶在目標站點的登陸態發送到目標站點,而目標站點未校驗請求來源使第三方成功僞造請求。javascript
JS控制瀏覽器發送請求的時候,瀏覽器是根據目標站點,而不是來源站點,來發送cookie的,若是當前會話中有目標站點的cookie,就發送出去。核心問題是瀏覽器的會話機制,是跨站請求僞造漏洞的根源。css
根據HTTP協議,在HTTP頭中有一個字段叫Referer,它記錄了該HTTP請求的來源地址。在一般狀況下,訪問一個安全受限頁面的請求必須來自於同一個網站。好比某銀行的轉帳是經過用戶訪問http://bank.test/test?page=10&userID=101&money=10000頁面完成,用戶必須先登陸bank.test,而後經過點擊頁面上的按鈕來觸發轉帳事件。當用戶提交請求時,該轉帳請求的Referer值就會是轉帳按鈕所在頁面的URL(本例中,一般是以bank. test域名開頭的地址)。而若是攻擊者要對銀行網站實施CSRF攻擊,他只能在本身的網站構造請求,當用戶經過攻擊者的網站發送請求到銀行時,該請求的Referer是指向攻擊者的網站。所以,要防護CSRF攻擊,銀行網站只須要對於每個轉帳請求驗證其Referer值,若是是以bank. test開頭的域名,則說明該請求是來自銀行網站本身的請求,是合法的。若是Referer是其餘網站的話,就有多是CSRF攻擊,則拒絕該請求。html
黑客在頁面中嵌入javascript腳本,當用戶瀏覽到該頁面時,腳本就會執行。前端
反射型:我向服務端發送了一段攻擊腳本,服務端收到後又原模原樣的返回給客戶端,經常使用攻擊入口搜索框,一般是沒有搜索到相關內容。java
存儲型:經過發佈帶有惡意腳本的帖子或評論,從而把惡意腳本存儲在服務器,每一個查看該帖子/評論的頁面都會觸發執行惡意腳本。一般有用戶輸入,而且有對應輸出的地方,都有可能發生XSS攻擊瀏覽器
對輸入(和URL參數)進行過濾,對輸出進行編碼安全
在提交表單時,前端最好將文本內容轉爲html實體編碼,也就是過濾掉script、a、這樣的標籤,而後再提交到後臺去。固然保險起見,後臺也要再作一遍html實體轉碼,而後再入庫。服務器
在顯示文本內容時,最好也要作一次html實體編碼轉換後再顯示,防止script標籤生效cookie
點擊劫持是一種視覺上的欺騙手段。攻擊者使用一個透明的、不可見的iframe,覆蓋在一個網頁上,而後誘使用戶在該網頁上進行操做,此時用戶將在不知情的狀況下點擊透明的iframe頁面。經過調整iframe頁面的位置,能夠誘使用戶剛好點擊在iframe頁面的一些功能性按鈕上。網站