xss: 跨站腳本攻擊(Cross Site Scripting)是最多見和基本的攻擊 WEB 網站方法,攻擊者經過注入非法的 html 標籤或者 javascript 代碼,從而當用戶瀏覽該網頁時,控制用戶瀏覽器。javascript
DOM即文本對象模型,使用DOM能夠容許程序和腳本動態的訪問和更新文檔的內容、結構和樣式。這種方式不須要服務器解析響應的直接參與,觸發XSS靠的是瀏覽器端的DOM解析,能夠認爲徹底是客戶端的事情。
反射型 xss :css
也被稱爲非持久性XSS,是如今最容易出現的一種XSS漏洞。發出請求時,XSS代碼出如今URL中,最後輸入提交到服務器,服務器解析後在響應內容中出現這段XSS代碼,最後瀏覽器解析執行。html
存儲型XSS又被稱爲持久性XSS,它是最危險的一種跨站腳本,相比反射型XSS和DOM型XSS具備更高的隱蔽性,因此危害更大,它不須要用戶手動觸發。 當攻擊者提交一段XSS代碼後,被服務器端接收並存儲,當全部瀏覽者訪問某個頁面時都會被XSS,其中最典型的例子就是留言板。前端
利用虛假輸入表單騙取用戶我的信息。
利用腳本竊取用戶的 Cookie 值,被害者在不知情的狀況下,幫助攻擊者發送惡意請求。java
httpOnly: 在 cookie 中設置 HttpOnly 屬性,使js腳本沒法讀取到 cookie 信息。
前端負責輸入檢查,後端也要作相同的過濾檢查。
某些狀況下,不能對用戶數據進行嚴格過濾時,須要對標籤進行轉換後端
跨站點請求僞造(Cross-Site Request Forgeries),冒充用戶發起請求(在用戶不知情的狀況下), 完成一些違背用戶意願的事情(如修改用戶信息,刪初評論等)。瀏覽器
使用token的原理:
第一步:後端隨機產生一個 token,把這個token 保存到 session 狀態中;同時後端把這個token 交給前端頁面;
第二步:前端頁面提交請求時,把 token 加入到請求數據或者頭信息中,一塊兒傳給後端;
後端驗證前端傳來的 token 與 session 是否一致,一致則合法,不然是非法請求。緩存
點擊劫持,是指利用透明的按鈕或鏈接作成陷阱,覆蓋在 Web 頁面之上。而後誘使用戶在不知情的狀況下,點擊那個鏈接訪問內容的一種攻擊手段。這種行爲又稱爲界面假裝(UI Redressing) 。安全
點擊劫持通常有以下兩種方式實現:性能優化
X-FRAME-OPTIONS HTTP 響應頭是用來給瀏覽器指示容許一個頁面能否在<frame>, <iframe> 或者 <object> 中展示的標記。
網站可使用此功能,來確保本身網站內容沒有被嵌到別人的網站中去,也從而避免點擊劫持的攻擊
X-FRAME-OPTIONS 有三個值:
判斷頂層視口的域名是否是和本頁面的域名一致,若是不一致就讓惡意網頁自動跳轉到我方的網頁。
if (top.location.hostname !== self.location.hostname) { alert("您正在訪問不安全的頁面,即將跳轉到安全頁面!") top.location.href = self.location.href; }
此種方法可輕易被破解:
// 破解: // 頂層窗口中放入代碼 var location = document.location; //或者 var location = ""; if (top.location.hostname !== self.location.hostname) { alert("您正在訪問不安全的頁面,即將跳轉到安全頁面!") top.location.href = self.location.href; }
減小http請求次數:
合理的title、description、keywords:搜索對這三項的權重逐個減少;
標題與關鍵詞
網站結構目錄
頁面元素
網站內容
友情連接
內鏈的佈置
流量分析