常見的前端攻擊方式html
XSS 攻擊、CSRF 攻擊、點擊劫持、URL 跳轉漏洞。前端
什麼是 XSS 攻擊?面試
XSS 即跨站腳本攻擊,是一種代碼注入攻擊。惡意代碼未通過濾,與網站正常代碼混在一塊兒,瀏覽器沒法分辨哪些腳本是可信的,致使惡意腳本被執行。數據庫
XSS 攻擊有幾種攻擊類型?如何防範 XSS 攻擊?json
XSS 攻擊包括反射型、DOM 型和持久型三種。segmentfault
(1) 反射型 XSS瀏覽器
(2) DOM 型 XSS安全
.innerHTML
、.outerHTML
、appendChild
、document.write()
等 API 時把不可信的數據做爲 HTML 插到了頁面上。.innerText
、.textContent
、setAttribute()
等API,並對輸入內容進行轉義。(3) 存儲型 XSS服務器
其餘防範 XSS 攻擊的手段:cookie
(1) CSP:白名單制度,開發者經過配置告訴瀏覽器哪些外部資源能夠加載和執行。能夠經過服務端配置 HTTP的Content-Security-Policy
頭部指定,也能夠在前端設置meta
標籤。
(2) 輸入內容限制,不能包含特殊字符。
(3) 爲 Cookie 設置HttpOnly
標記,使攻擊者不能經過 JavaScript 訪問 Cookie。
Set-Cookie: ...; HttpOnly
複製代碼
(4) 驗證碼:防止腳本冒充用戶提交危險操做。
什麼是 CSRF ?如何防範 CSRF ?
CSRF 及跨站請求僞造,攻擊者誘導受害者進入第三方網站,在第三方網站中,向被攻擊網站發送跨站請求。利用受害者在被攻擊網站已經獲取的註冊憑證,繞事後臺的用戶驗證,達到冒充用戶對被攻擊網站執行某項操做的目的。
防範方式:
Set-Cookie
設置Samesite
屬性,限制第三方 Cookie,不是全部瀏覽器都支持這種方式。Samesite
能夠設置三個值:
Strict
,徹底禁止第三方 Cookie,跨站點時,任何狀況下都不會發送 Cookie。Lax
,跨站點時,除導航到目標地址的 Get 請求(連接、預加載、GET 表單)外,其餘狀況也不發送第三方 Cookie。None
,關閉SameSite
屬性,前提是必須同時設置Secure
屬性。除了 XSS 和 CSRF 攻擊以外,還有哪些攻擊方式?
X-Frame-Options
頭部,能夠設置三個值:
DENY
:表示該頁面不容許在 frame 中展現,即便在相同域名的頁面中嵌套也不容許sameorigin
:表示該頁面能夠在相同域名頁面的 frame 中展現allow-from uri
:表示該頁面能夠在指定來源的 frame 中展現安全掃描工具
Arachni、Mozilla HTTP Observatory、w3af
參考: