一般黑客會(huì)通過各種系統(tǒng)漏洞或惡意程序,搭配許多技術(shù)和工具進(jìn)行網(wǎng)站攻擊。這些網(wǎng)絡(luò)攻擊種類繁多,防不勝防。如果你想保護(hù)網(wǎng)站的安全,應(yīng)該要了解這些常見攻擊手法,并使用正確的方法進(jìn)行防范,這樣才能識別漏洞并避免網(wǎng)站被攻擊。
一、跨站腳本
跨站腳本 (XSS) 是一種攻擊類型,攻擊者會(huì)將惡意代碼注入到網(wǎng)頁,只要有用戶訪問該頁面就會(huì)執(zhí)行這些惡意代碼。XSS攻擊是嚴(yán)重的安全威脅,因?yàn)樗鼈兛捎糜诟`取敏感信息、執(zhí)行欺詐活動(dòng),甚至控制用戶的瀏覽器。
XSS攻擊主要有兩種類型:反射型和持久型。
1、反射型XSS攻擊:反射型跨站腳本漏洞是比較普遍的類型,用戶訪問服務(wù)器-跨站鏈接-返回跨站代碼。
2、持續(xù)的XSS攻擊:當(dāng)惡意代碼被注入頁面然后存儲在服務(wù)器上,每次用戶訪問頁面時(shí)都會(huì)執(zhí)行。
有幾種不同的方法可以防止XSS攻擊。首先,你可以使用Web應(yīng)用程序防火墻(WAF) 過濾掉惡意代碼。另一種是使用輸入驗(yàn)證,這意味著在服務(wù)器處理惡意代碼之前檢查用戶輸入的代碼。使用標(biāo)準(zhǔn)輸入驗(yàn)證機(jī)制,驗(yàn)證所有輸入數(shù)據(jù)的長度、類型、語法以及業(yè)務(wù)規(guī)則。
最后,你可以對所有輸出數(shù)據(jù)進(jìn)行適當(dāng)?shù)木幋a,將特殊字符替換掉,以防止任何已成功注入的腳本在瀏覽器端運(yùn)行。通過采取這些處理方法,可以幫助保護(hù)你的網(wǎng)站免受XSS攻擊和其他基于注入的攻擊。
二、SQL注入
SQL注入是一種代碼注入技術(shù),它利用網(wǎng)站程序中的安全漏洞。主要形成的原因是在數(shù)據(jù)交互中,前端的數(shù)據(jù)傳入到后臺處理時(shí),沒有做嚴(yán)格的判斷,導(dǎo)致其傳入的“數(shù)據(jù)”拼接到SQL語句中后,被當(dāng)作SQL語句的一部分執(zhí)行。 從而導(dǎo)致數(shù)據(jù)庫被篡改、刪除,甚至提取整個(gè)服務(wù)器權(quán)限。
預(yù)防SQL注入大概有兩種思路 ,一個(gè)是提升對輸入內(nèi)容的查驗(yàn);另一個(gè)是應(yīng)用參數(shù)化語句來傳遞客戶輸入的內(nèi)容。具體有以下幾種方法:
1、嚴(yán)格區(qū)分用戶權(quán)限
在權(quán)限設(shè)計(jì)中,針對普通用戶,沒有必要給予數(shù)據(jù)庫的創(chuàng)建、刪除等管理權(quán)限。這樣即便在用戶輸入的SQL語句種含有內(nèi)嵌式的惡意程序,因?yàn)槠錂?quán)限的限定,也不可能執(zhí)行。所以程序在權(quán)限設(shè)計(jì)時(shí),最好把管理員與用戶區(qū)別起來。這樣能夠最大限度的降低注入式攻擊對數(shù)據(jù)庫產(chǎn)生的損害。
2、強(qiáng)制參數(shù)化語句
在設(shè)計(jì)數(shù)據(jù)庫時(shí),如果用戶輸入的數(shù)據(jù)并不直接內(nèi)嵌到SQL語句中,而通過參數(shù)來進(jìn)行傳輸?shù)脑挘敲淳涂梢院侠淼念A(yù)防SQL注入式攻擊。運(yùn)用這種方法能夠避免絕大多數(shù)的SQL注入攻擊。遺憾的是,如今適用參數(shù)化語句的數(shù)據(jù)庫引擎并不多,但是數(shù)據(jù)庫工程師在開發(fā)時(shí)要盡可能選用參數(shù)化設(shè)計(jì)語句。
3、檢驗(yàn)用戶輸入的信息
在SQL Server數(shù)據(jù)庫中,有比較多的輸入內(nèi)容檢驗(yàn)工具,能夠協(xié)助管理人員來應(yīng)對SQL注入式攻擊:
● 檢測字符串的內(nèi)容,只接納需要的值。
● 拒絕包括二進(jìn)制、轉(zhuǎn)義序列和注釋內(nèi)容,這有利于預(yù)防腳本注入。
● 檢測輸入內(nèi)容的大小和數(shù)據(jù)類型,強(qiáng)制執(zhí)行適度的限定與變換,這有利于避免緩沖區(qū)溢出。
4、利用專業(yè)的漏洞掃描工具
通過專業(yè)的網(wǎng)站漏洞掃描工具,能夠協(xié)助管理人員來尋找有可能被SQL注入攻擊的點(diǎn)。憑借專用工具,我們可以快速發(fā)現(xiàn)SQL注入的漏洞,并采用積極主動(dòng)的對策來預(yù)防SQL注入式攻擊。
三、DDoS攻擊
DDoS攻擊又稱分散式阻斷服務(wù)攻擊,這是一種常見的網(wǎng)站攻擊手法,旨在通過大量請求使系統(tǒng)過載,使其無法正常運(yùn)行。也就是在短時(shí)間內(nèi)發(fā)動(dòng)大規(guī)模的訪問請求,借此耗盡服務(wù)器資源和帶寬,造成服務(wù)器癱瘓。黑客可以通過被惡意植入代碼的網(wǎng)站,讓這些用戶向目標(biāo)網(wǎng)站發(fā)送大量請求,導(dǎo)致目標(biāo)網(wǎng)站不堪負(fù)荷而中斷服務(wù)。
預(yù)防DDoS攻擊或處理方法:
1、購買高防服務(wù)器,通過硬防或軟防幫助網(wǎng)站拒絕服務(wù)攻擊。
2、使用高防IP,將攻擊流量引流到高防IP,從而保護(hù)真正的IP不被暴露,確保源站的穩(wěn)定。
3、采用高防CDN,通過內(nèi)容分離數(shù)據(jù)流量進(jìn)行防御。
4、配置Web應(yīng)用程序防火墻(WAF),防御常見攻擊,保障網(wǎng)站安全。
四、CC攻擊
CC攻擊英文全稱為Challenge Collapsar,是DDoS攻擊的一種,前者攻擊的對象是IP,而CC攻擊的是網(wǎng)頁。其原理就是,攻擊者利用多個(gè)主機(jī),模擬用戶發(fā)送大量的數(shù)據(jù)操作給網(wǎng)頁,制造大量的后臺數(shù)據(jù)庫查詢動(dòng)作,讓CPU長時(shí)間處于100%忙碌狀態(tài),永遠(yuǎn)有處理不完的連接,造成資源消耗,服務(wù)器宕機(jī)。CC攻擊的IP是真實(shí)的、分散的,也都是正常的數(shù)據(jù)包,有效難以拒絕訪問。
通常防止CC攻擊的方法有幾種,比如:購買Web應(yīng)用防火墻(Web Application Firewall,簡稱WAF);生成純靜態(tài)網(wǎng)頁;防止用戶頻繁刷新頁面等。
最簡單的方法就是購買CDN來分散攻擊流量,節(jié)省站點(diǎn)服務(wù)器的壓力以及節(jié)點(diǎn)壓力,從而有效防止CC攻擊。當(dāng)然如果攻擊流量太大造成節(jié)點(diǎn)不能正常服務(wù),CDN可能會(huì)封禁加速域名。另一個(gè)方法購買高防CDN,可以自動(dòng)識別惡意攻擊流量,對這些虛假流量進(jìn)行智能清洗,將正常訪客流量回源到源服務(wù)器IP上,保障源服務(wù)器的正常穩(wěn)定運(yùn)行。
五、密碼暴力破解
這是使用的軟件每秒嘗試大量密碼組合,直到猜測到正確密碼為止。因此,如果你的密碼規(guī)則很簡單,這類工具只要幾秒就能破解密碼。然而,破解復(fù)雜密碼則需要幾年的時(shí)間。有幾種常見的基于密碼的攻擊。 以下是一些最常見的:
1、蠻力攻擊:這是攻擊者嘗試大量可能的密碼直到找到正確的密碼。我們可以通過使用強(qiáng)密碼和限制登錄嘗試失敗的次數(shù)來防止。
2、字典攻擊:這是攻擊者使用常用單詞和密碼列表來嘗試猜測正確的密碼。我們可以通過使用不常用的強(qiáng)密碼來防止。
預(yù)防密碼被暴力破解的最佳方法之一是制定強(qiáng)密碼策略,并定期更改密碼。另外,你可以實(shí)施雙重身份驗(yàn)證 (2FA) 在允許訪問帳戶之前驗(yàn)證額外的信息。