1、XSS跨站腳本攻擊
數據中包含腳本。前端
一、xss分類
①反射型
經過url參數注入,造成一個有毒的連接。
②存儲型
這段腳本通過數據庫。mysql
二、xss攻擊的注入點
①HTML節點內容
節點中包含<script></script>標籤
②HTML屬性
某個屬性被"或者'提早關閉,攻擊者加上另一些可運行腳本的屬性。
③JavaScript代碼
字符串提早關閉。
④富文本
自己就是一段HTML,可能出現不少種注入方式。sql
三、XSS攻擊防護
①對於HTML節點內容、HTML屬性、JavaScript代碼類型攻擊使用字符串轉義
②富文本的防護使用白名單
③CSP數據庫
2、CSRF跨站請求僞造攻擊
CSRF是讓用戶在不知情的狀況,冒用其身份發起了一個請求。
好比,點擊不知情連接,利用圖片url.src發送請求。npm
一、CSRF攻擊原理
①用戶1登陸A網站
②A網站確認身份
③用戶1沒有退出登陸,而且使用同一瀏覽器打開一個不知情的B網站。
④B網站頁面向A網站發起請求(攜帶A網站的cookie)瀏覽器
二、CSRF攻擊防護
①same-site屬性
禁止第三方網站攜帶cookie
②驗證碼
使得必須訪問A網站的前端,才能獲取到驗證碼。
③token
驗證碼有時候會影響用戶體驗。使用token,服務器端發送一個隨機的token到客戶端,客戶端發送請求帶上token。
⑤referer
禁止來自第三方網站的請求。安全
3、Cookie安全
好比Cookie中存放了用戶ID,這個用戶ID就面臨着被篡改或者被盜取的風險。服務器
一、Cookie和XSS
①XSS能夠偷取Cookie
②http-only的Cookie不會被偷cookie
二、Cookie和CSRF
①CSRF利用了用戶Cookie
②攻擊站點沒法讀取Cookies
③最好能阻止第三方使用Cookies(same-site)session
三、Cookie安全防護
①用戶ID+簽名
利用簽名驗證用戶ID是否被篡改。
②用戶ID加密(srypt)
服務端進行加密後再傳輸,收到請求再解密。
③SessionId
服務端使用session保存用戶ID,傳送SessionId給客戶端。
④http-only
防止XSS攻擊盜取Cookie。
④same-site
防止CSRF利用了用戶Cookie。
⑤secure
只有HTTPS才能夠讀取Cookie,保證Cookie在傳輸過程當中的安全。
4、前端點擊劫持
點擊劫持原理本質就是利用iframe實現了障眼法。用戶真正點擊的其實不是用戶所看到的東西。真正的東西把透明度設置成了0,用戶看不到。這樣能夠誘導用戶在不知情的狀況下完成某些操做。
一、點擊劫持的防護
①禁止內嵌iframe(JavaScript禁止內嵌 、sandbox)
②其餘輔助:加驗證碼
5、傳輸安全問題
HTTP是明文傳輸,因此在傳輸過程當中有可能被竊聽和篡改。
一、HTTP竊聽
①用戶名密碼
②傳輸敏感信息
③我的資料(銀行卡……)
二、HTTP篡改
①插入廣告
②重定向網站
③沒法防護XSS和CSRF
④運營商和局域網劫持
三、傳輸安全問題防護
①HTTPS
以安全爲目標的HTTP通道,簡單講是HTTP的安全版。
安全保障:TLS(SSL)加密+CA證書。
6、密碼安全
一、密碼泄露
①數據庫被偷
②服務器入侵
③通信被竊聽
④內部人員泄露數據
二、密碼存儲
①嚴禁明文存儲(防泄露)
②單項變換(防泄漏)
③變換複雜度要求(防猜解)
④密碼複雜度要求(防猜解)
⑤加鹽(防猜解)
三、加密
md5 sha1 sha256
四、前端加密
前端加密意義有限,可是並非沒有意義。好比保護用戶隱私,防止猜想用戶其餘網站的密碼等。
7、SQL注入
SQL注入和XSS攻擊有點類似。寫入數據庫中的數據變成SQL語句邏輯。攻擊者能夠經過SQL命令攻擊程序弱點。深層次的緣由是網站程序上容許SQL語句傳遞到數據庫,而且直接和數據庫交互。
一、危害
①猜解密碼(工具)
②獲取數據
③刪庫刪表
......
二、SQL注入的防護
①關閉錯誤輸出
錯誤信息輸出到前端會讓黑客更加準確的定位錯誤。
②檢查數據類型,參數。
parseInt()
③對數據進行轉義。
npm install mysql
④使用參數化查詢。
npm install mysql2
⑤使用ORM(對象關係映射)
npm install sequelize
三、NoSQL注入
NoSQL(不只僅是NoSQL)數據存儲系統已經很是流行,由於它們易擴展且易於使用。儘管NoSQL數據存儲的新的數據模型和查詢格式令原來的攻擊再也不有效了,但攻擊者卻能夠尋找新的契機插入惡意代碼。
一、NoSQL防護
①檢查數據類型
②類型轉換
③寫完整條件(驗證對象內容)
8、上傳問題
一、過程
①上傳文件
②再次訪問上傳的文件
③上傳的文件被當成程序解析
二、上傳問題防護
①限制上傳後綴
②文件類型檢查
③文件內容檢查(文件頭信息)
④程序輸出(讀,寫,性能有影響)
⑤權限控制-可寫可執行互斥
9、其餘安全問題
一、拒絕服務DOS
①模擬正經常使用戶
②大量佔用服務器資源(上線)
③系統崩潰
二、分佈式拒絕服務攻擊DDOS
①流量可達幾十到上百G
②分佈式(肉雞,代理)
③難防護
三、DOS防護
①防火牆
②交換機、路由器防護
③流量清洗
④高防IP
⑤避免重邏輯業務
⑥快速失敗快速返回
⑦防雪崩機制
......
四、重放攻擊
重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊,是指攻擊者發送一個目的主機已接收過的包,來達到欺騙系統的目的,主要用於身份認證過程,破壞認證的正確性。
後果:
①用戶被屢次消費
②用戶登陸態被盜取
③屢次抽獎
......
防護:①加密(HTTPS)②時間戳③token④nonce⑤簽名(防篡改)