摸魚前端的自檢(四)瀏覽器如何防gank?

瀏覽器如何防gank?

在面試中我們常常會被問到web攻擊,如果預防和處理之類的,確保網站或者網頁應用的安全性,是每個開發人員都應該瞭解的事。這裏主要列出集中常見的web攻擊方式和防禦處理方法。

有興趣的同學可以去我的github,裏面有我的分享的學習過程和blog.
github.com/193Eric


XSS

XSS攻擊:跨站腳本攻擊(Cross-Site Scripting)
XSS是一種常見的web安全漏洞,它允許攻擊者將惡意代碼植入到提供給其它用戶使用的頁面中
XSS分爲兩個大類:

  • 存儲型XSS
    主要是提供了讓用戶輸入數據的接口,比如說評論,留言,表單等。服務器把這類輸入存儲到數據庫裏面,當用戶訪問的時候,從數據庫裏面讀出來,在界面展現出來。攻擊者在相關頁面輸入惡意的腳本數據後,用戶瀏覽此類頁面時就可能受到攻擊。
    基本流程是:
    惡意腳本輸入—》服務器存入數據庫—》用戶訪問界面,從數據庫取出數據輸出到頁面—》受到XSS攻擊

  • 反射型XSS
    反射型 XSS 一般是攻擊者通過特定手法(如電子郵件),誘使用戶去訪問一個包含惡意代碼的 URL,當受害者點擊這些專門設計的鏈接的時候,惡意代碼會直接在受害者主機上的瀏覽器執行。
    主要是從url上面輸入攻擊代碼,有一些網頁,會把url上面帶的字符串,當做輸出,顯示在網頁上。
    比如有這麼一個網站wwww.baidu.com?msg=error,會在網頁上會有一個<div>error</div>顯示出出error字符串,如果我輸入的是wwww.baidu.com?msg=<script>alert(xss)</script>,就會運行這個代碼。

如何預防XSS攻擊

最簡單的方法就是認爲所有用戶的輸入都是不安全的,把所有的輸入都進行一遍特殊字符的過濾,


SQL注入

就是攻擊者通過輸入sql的查詢代碼,有些程序不嚴謹,後臺語言sql查詢的時候,用的簡單字符串拼接。然後程序接收到這段惡意的Sql代碼之後,導致原有的查詢邏輯被修改,造成嚴重影響。

比如:
後臺的查詢用戶名是否存在用的這段,select * from user where user_name = ''結果用戶輸入的user_name是;DROP TABLE user;,直接就把user表給刪除了…

如何預防SQL注入

  • 在後臺語言中,可以用模板或者預編譯的方式,只去字符串,而不是做簡單的拼接。

  • 對特殊字符過濾,轉義。


DDOS

什麼是DDOS?
DDOS:分佈式拒絕服務攻擊(Distributed Denial of Service),攻擊者藉助公共網絡,將大數量的計算機設備聯合起來,向一個或多個目標進行攻擊。簡單來說dos攻擊就是以一個ip地址向另一個ip地址做攻擊;DDOS就是多個ip攻擊一個ip。

黑客爲什麼要用DDOS攻擊?
DDOS對攻擊方來說,消耗也是不少的,很多黑客都是通過自己掌控的肉雞(中了病毒的電腦),來攻擊一個ip,有被殺毒軟件查殺的危險。就我來說,我呆在一家區塊鏈公司,經常會受到DDOS攻擊,阿里雲DDOS防禦開啓一天又賊貴,黑客一攻擊就是幾個小時,然後我們會受到一封勒索郵件,一個比特幣錢包地址,要我們打一個比特幣過去,就停止攻擊,…反正處理起來很麻煩

如何預防DDOS攻擊

DDoS 防禦產品的核心是檢測技術和清洗技術,一般來說,硬抗或者買阿里雲DDOS防禦包吧,小公司自己建立防禦體系,太難。


CSRF

CSRF(Cross-site request forgery),中文名稱:跨站請求僞造

CSRF 能這麼理解,就是攻擊者盜用了你的身份信息,以你的名義發送任何請求進行操作。

CSRF怎麼攻擊的?

說實話,CSRF這個攻擊在我認爲,是很難得.
CSRF的攻擊流程如下:

  • 假如一家銀行用以運行轉賬操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName

  • 那麼,一個惡意攻擊者可以在另一個網站上放置如下代碼: <img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">

  • 如果用戶訪問了惡意站點,而她之前剛訪問過銀行不久,登錄信息尚未過期,那麼她就會損失1000資金。

爲什麼我說對當前年代很難呢,首先要滿足登錄兩個不同的網站,第二銀行和一些涉及錢的地方都會需要短信驗證或者資金密碼。不是一個cookie能解決的。

如何預防CSRF

  • 檢查Referer字段,HTTP請求頭裏面有這個字段,可以看到網站訪問來源於哪個地址。不過只是簡單方法,不可否認有些黑客可能修改瀏覽器的referer字段。

  • 增加token,因爲這種攻擊方式是通過劫持cookie來辦到的,所以添加一個攻擊者獲取不到的token來做驗證是可行的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章