當前位置:首頁 » 網頁前端 » web防攻擊
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web防攻擊

發布時間: 2022-02-06 17:33:03

Ⅰ 如何防止web攻擊

sql注入攻擊(SQL Injection)
攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的字元串,欺騙伺服器執行惡意的SQL命令。在某些表單中,用戶輸入的內容直接用來構造(或者影響)動態SQL命令,或作為存儲過程的輸入參數,這類表單特別容易受到SQL注入式攻擊。
常見的SQL注入式攻擊過程類如:
1.某個Web應用有一個登錄頁面,這個登錄頁面控制著用戶是否有權訪問應用,它要求用戶輸入一個名稱和密碼;
2.登錄頁面中輸入的內容將直接用來構造動態的SQL命令,或者直接用作存儲過程的參數;
例如:
$query = 'SELECT * from Users WHERE login = ' . $username . ' AND password = ' . $password;
3.攻擊者在用戶名字和密碼輸入框中輸入'或'1'='1之類的內容;
4.用戶輸入的內容提交給伺服器之後,伺服器運行上面的代碼構造出查詢用戶的SQL命令,但由於攻擊者輸入的內容非常特殊,所以最後得到的SQL命令變成:
SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1';
5.伺服器執行查詢或存儲過程,將用戶輸入的身份信息和伺服器中保存的身份信息進行對比;
6.由於SQL命令實際上已被注入式攻擊修改,已經不能真正驗證用戶身份,所以系統會錯誤地授權給攻擊者。
如果攻擊者知道應用會將表單中輸入的內容直接用於驗證身份的查詢,他就會嘗試輸入某些特殊的SQL字元串篡改查詢改變其原來的功能,欺騙系統授予訪問許可權。
系統環境不同,攻擊者可能造成的損害也不同,這主要由應用訪問資料庫的安全許可權決定。如果用戶的帳戶具有管理員或其他比較高級的許可權,攻擊者就可能對資料庫的表執行各種他想要做的操作,包括添加、刪除或更新數據,甚至可能直接刪除表
防範方法:
1.檢查變數數據類型和格式
2.過濾特殊符號
3.綁定變數,使用預編譯語句

跨網站腳本攻擊(Cross Site scripting, XSS)
攻擊者將惡意代碼注入到網頁上,其他用戶在載入網頁時就會執行代碼,攻擊者可能得到包括但不限於更高的許可權(如執行一些操作)、私密網頁內容、會話和cookie等各種內容。這些惡意代碼通常是javascript、HTML以及其他客戶端腳本語言。
例如:
<?php
echo "歡迎您,".$_GET['name'];

常用的攻擊手段有:
盜用cookie,獲取敏感信息;
利用iframe、frame、xmlHttpRequest或上述Flash等方式,以(被攻擊)用戶的身份執行一些管理動作,或執行一些一般的如發微博、加好友、發私信等操作;
利用可被攻擊的域受到其他域信任的特點,以受信任來源的身份請求一些平時不允許的操作,如進行不當的投票活動;
在訪問量極大的一些頁面上的XSS可以攻擊一些小型網站,實現DDoS攻擊的效果。
防範方法:使用htmlspecialchars函數將特殊字元轉換成HTML編碼,過濾輸出的變數

跨網站請求偽造攻擊(Cross Site Request Forgeries, CSRF)
攻擊者偽造目標用戶的HTTP請求,然後此請求發送到有CSRF漏洞的網站,網站執行此請求後,引發跨站請求偽造攻擊。攻擊者利用隱蔽的HTTP連接,讓目標用戶在不注意的情況下單擊這個鏈接,由於是用戶自己點擊的,而他又是合法用戶擁有合法許可權,所以目標用戶能夠在網站內執行特定的HTTP鏈接,從而達到攻擊者的目的。
它與XSS的攻擊方法不同,XSS利用漏洞影響站點內的用戶,攻擊目標是同一站點內的用戶者,而CSRF 通過偽裝成受害用戶發送惡意請求來影響Web系統中受害用戶的利益。
例如:
某個購物網站購買商品時,採用shop.com/buy.php?item=watch&num=100
item參數確定要購買什麼物品,num參數確定要購買數量,如果攻擊者以隱藏的方式發送給目標用戶鏈接那麼如果目標用戶不小心訪問以後,購買的數量就成了100個
防範方法:
1、檢查網頁的來源
2、檢查內置的隱藏變數
3、使用POST,不要使用GET,處理變數也不要直接使用$_REQUEST

Session固定攻擊(Session Fixation)
這種攻擊方式的核心要點就是讓合法用戶使用攻擊者預先設定的session id來訪問被攻擊的應用程序,一旦用戶的會話ID被成功固定,攻擊者就可以通過此session id來冒充用戶訪問應用程序。
例如:
1.攻擊者訪問網站bank.com,獲取他自己的session id,如:SID=123;
2.攻擊者給目標用戶發送鏈接,並帶上自己的session id,如:bank.com/?SID=123;
3.目標用戶點擊了bank.com/?SID=123,像往常一樣,輸入自己的用戶名、密碼登錄到網站;
4.由於伺服器的session id不改變,現在攻擊者點擊bank.com/?SID=123,他就擁有了目標用戶的身份,可以為所欲為了。
防範方法:
1.定期更改session id
session_regenerate_id(TRUE);//刪除舊的session文件,每次都會產生一個新的session id。默認false,保留舊的session
2.更改session的名稱
session的默認名稱是PHPSESSID,此變數會保存在cookie中,如果攻擊者不抓包分析,就不能猜到這個名稱,阻擋部分攻擊[code]session_name("mysessionid");
復制代碼
3.關閉透明化session id
透明化session id指當瀏覽器中的http請求沒有使用cookie來制定session id時,sessioin id使用鏈接來傳遞
int_set("session.use_trans_sid", 0);
復制代碼
4.只從cookie檢查session id
int_set("session.use_cookies", 1);//表示使用cookies存放session id
int_set("session.use_only_cookies", 1);//表示只使用cookies存放session id
復制代碼
5.使用URL傳遞隱藏參數
$sid = md5(uniqid(rand()), TRUE));
$_SESSION["sid"] = $sid;//攻擊者雖然能獲取session數據,但是無法得知$sid的值,只要檢查sid的值,就可以確認當前頁面是否是web程序自己調用的
Session劫持攻擊(Session Hijacking)
會話劫持是指攻擊者利用各種手段來獲取目標用戶的session id。一旦獲取到session id,那麼攻擊者可以利用目標用戶的身份來登錄網站,獲取目標用戶的操作許可權。
攻擊者獲取目標用戶session id的方法:
1.暴力破解:嘗試各種session id,直到破解為止;
2.計算:如果session id使用非隨機的方式產生,那麼就有可能計算出來;
3.竊取:使用網路截獲,xss攻擊等方法獲得
防範方法:
1.定期更改session id
2.更改session的名稱
3.關閉透明化session id
4.設置HttpOnly。通過設置Cookie的HttpOnly為true,可以防止客戶端腳本訪問這個Cookie,從而有效的防止XSS攻擊。
文件上傳漏洞攻擊(File Upload Attack)
文件上傳漏洞指攻擊者利用程序缺陷繞過系統對文件的驗證與處理策略將惡意代碼上傳到伺服器並獲得執行伺服器端命令的能力。
常用的攻擊手段有:
上傳Web腳本代碼,Web容器解釋執行上傳的惡意腳本;
上傳Flash跨域策略文件crossdomain.xml,修改訪問許可權(其他策略文件利用方式類似);
上傳病毒、木馬文件,誘騙用戶和管理員下載執行;
上傳包含腳本的圖片,某些瀏覽器的低級版本會執行該腳本,用於釣魚和欺詐。
總的來說,利用的上傳文件要麼具備可執行能力(惡意代碼),要麼具備影響伺服器行為的能力(配置文件)。
防範方法:
1.文件上傳的目錄設置為不可執行;
2.判斷文件類型,設置白名單。對於圖片的處理,可以使用壓縮函數或者resize函數,在處理圖片的同時破壞圖片中可能包含的HTML代碼;
3.使用隨機數改寫文件名和文件路徑:一個是上傳後無法訪問;再來就是像shell.php.rar.rar和crossdomain.xml這種文件,都將因為重命名而無法攻擊;
4.單獨設置文件伺服器的域名:由於瀏覽器同源策略的關系,一系列客戶端攻擊將失效,比如上傳crossdomain.xml、上傳包含javascript的XSS利用等問題將得到解決。

Ⅱ 如何防範常見的 Web 攻擊

今天,從開發人員的角度,並結合我在開發過程中遇到的問題,說說《如何防範常見的Web攻擊》話題。

SQL注入攻擊

SQL注入攻擊,這個是最常聊到的話題,使用過Java的開發人員,第一個反應就是一定要使用預編譯的PrepareStatement,是吧?

什麼是SQL注入攻擊

攻擊者在HTTP請求中注入惡意的SQL代碼,伺服器使用參數構建資料庫SQL命令時,惡意SQL被一起構造,並在資料庫中執行。

用戶登錄,輸入用戶名 lianggzone,密碼 『 or 『1』=』1 ,如果此時使用參數構造的方式,就會出現

Ⅲ web漏洞攻擊有哪些

一、SQL注入漏洞
SQL注入攻擊(SQL Injection),簡稱注入攻擊、SQL注入,被廣泛用於非法獲取網站控制權,是發生在應用程序的資料庫層上的安全漏洞。在設計程序,忽略了對輸入字元串中夾帶的SQL指令的檢查,被資料庫誤認為是正常的SQL指令而運行,從而使資料庫受到攻擊,可能導致數據被竊取、更改、刪除,以及進一步導致網站被嵌入惡意代碼、被植入後門程序等危害。
通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請求,也包括GET請求;
(2)URL參數提交,主要為GET請求參數;
(3)Cookie參數提交;
(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;
(5)一些邊緣的輸入點,比如.mp3文件的一些文件信息等。
常見的防範方法
(1)所有的查詢語句都使用資料庫提供的參數化查詢介面,參數化的語句使用參數而不是將用戶輸入變數嵌入到SQL語句中。當前幾乎所有的資料庫系統都提供了參數化SQL語句執行介面,使用此介面可以非常有效的防止SQL注入攻擊。
(2)對進入資料庫的特殊字元(』」<>&*;等)進行轉義處理,或編碼轉換。
(3)確認每種數據的類型,比如數字型的數據就必須是數字,資料庫中的存儲欄位必須對應為int型。
(4)數據長度應該嚴格規定,能在一定程度上防止比較長的SQL注入語句無法正確執行。
(5)網站每個數據層的編碼統一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
(6)嚴格限制網站用戶的資料庫的操作許可權,給此用戶提供僅僅能夠滿足其工作的許可權,從而最大限度的減少注入攻擊對資料庫的危害。
(7)避免網站顯示SQL錯誤信息,比如類型錯誤、欄位不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
(8)在網站發布之前建議使用一些專業的SQL注入檢測工具進行檢測,及時修補這些SQL注入漏洞。

二、跨站腳本漏洞
跨站腳本攻擊(Cross-site scripting,通常簡稱為XSS)發生在客戶端,可被用於進行竊取隱私、釣魚欺騙、竊取密碼、傳播惡意代碼等攻擊。
XSS攻擊使用到的技術主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對WEB伺服器雖無直接危害,但是它藉助網站進行傳播,使網站的使用用戶受到攻擊,導致網站用戶帳號被竊取,從而對網站也產生了較嚴重的危害。
XSS類型包括:
(1)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類型。跨站代碼一般存在於鏈接中,請求這樣的鏈接時,跨站代碼經過服務端反射回來,這類跨站的代碼不存儲到服務端(比如資料庫中)。上面章節所舉的例子就是這類情況。
(2)持久型跨站:這是危害最直接的跨站類型,跨站代碼存儲於服務端(比如資料庫中)。常見情況是某用戶在論壇發貼,如果論壇沒有過濾用戶輸入的Javascript代碼數據,就會導致其他瀏覽此貼的用戶的瀏覽器會執行發貼人所嵌入的Javascript代碼。
(3)DOM跨站(DOM XSS):是一種發生在客戶端DOM(Document Object Model文檔對象模型)中的跨站漏洞,很大原因是因為客戶端腳本處理邏輯導致的安全問題。
常用的防止XSS技術包括:
(1)與SQL注入防護的建議一樣,假定所有輸入都是可疑的,必須對所有輸入中的script、iframe等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入介面,也包括HTTP請求中的Cookie中的變數,HTTP請求頭部中的變數等。
(2)不僅要驗證數據的類型,還要驗證其格式、長度、范圍和內容。
(3)不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。
(4)對輸出的數據也要檢查,資料庫里的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
(5)在發布應用程序之前測試所有已知的威脅。

三、弱口令漏洞
弱口令(weak password) 沒有嚴格和准確的定義,通常認為容易被別人(他們有可能對你很了解)猜測到或被破解工具破解的口令均為弱口令。設置密碼通常遵循以下原則:
(1)不使用空口令或系統預設的口令,這些口令眾所周之,為典型的弱口令。
(2)口令長度不小於8個字元。
(3)口令不應該為連續的某個字元(例如:AAAAAAAA)或重復某些字元的組合(例如:tzf.tzf.)。
(4)口令應該為以下四類字元的組合,大寫字母(A-Z)、小寫字母(a-z)、數字(0-9)和特殊字元。每類字元至少包含一個。如果某類字元只包含一個,那麼該字元不應為首字元或尾字元。
(5)口令中不應包含本人、父母、子女和配偶的姓名和出生日期、紀念日期、登錄名、E-mail地址等等與本人有關的信息,以及字典中的單詞。
(6)口令不應該為用數字或符號代替某些字母的單詞。
(7)口令應該易記且可以快速輸入,防止他人從你身後很容易看到你的輸入。
(8)至少90天內更換一次口令,防止未被發現的入侵者繼續使用該口令。

四、HTTP報頭追蹤漏洞
HTTP/1.1(RFC2616)規范定義了HTTP TRACE方法,主要是用於客戶端通過向Web伺服器提交TRACE請求來進行測試或獲得診斷信息。當Web伺服器啟用TRACE時,提交的請求頭會在伺服器響應的內容(Body)中完整的返回,其中HTTP頭很可能包括Session Token、Cookies或其它認證信息。攻擊者可以利用此漏洞來欺騙合法用戶並得到他們的私人信息。該漏洞往往與其它方式配合來進行有效攻擊,由於HTTP TRACE請求可以通過客戶瀏覽器腳本發起(如XMLHttpRequest),並可以通過DOM介面來訪問,因此很容易被攻擊者利用。
防禦HTTP報頭追蹤漏洞的方法通常禁用HTTP TRACE方法。

五、Struts2遠程命令執行漏洞
ApacheStruts是一款建立Java web應用程序的開放源代碼架構。Apache Struts存在一個輸入過濾錯誤,如果遇到轉換錯誤可被利用注入和執行任意Java代碼。
網站存在遠程代碼執行漏洞的大部分原因是由於網站採用了Apache Struts Xwork作為網站應用框架,由於該軟體存在遠程代碼執高危漏洞,導致網站面臨安全風險。CNVD處置過諸多此類漏洞,例如:「GPS車載衛星定位系統」網站存在遠程命令執行漏洞(CNVD-2012-13934);Aspcms留言本遠程代碼執行漏洞(CNVD-2012-11590)等。
修復此類漏洞,只需到Apache官網升級Apache Struts到最新版本:http://struts.apache.org

六、文件上傳漏洞
文件上傳漏洞通常由於網頁代碼中的文件上傳路徑變數過濾不嚴造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網站後門文件(webshell),進而遠程式控制制網站伺服器。
因此,在開發網站及應用程序過程中,需嚴格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關目錄的執行許可權,防範webshell攻擊。

七、私有IP地址泄露漏洞
IP地址是網路用戶的重要標示,是攻擊者進行攻擊前需要了解的。獲取的方法較多,攻擊者也會因不同的網路情況採取不同的方法,如:在區域網內使用Ping指令,Ping對方在網路中的名稱而獲得IP;在Internet上使用IP版的QQ直接顯示。最有效的辦法是截獲並分析對方的網路數據包。攻擊者可以找到並直接通過軟體解析截獲後的數據包的IP包頭信息,再根據這些信息了解具體的IP。
針對最有效的「數據包分析方法」而言,就可以安裝能夠自動去掉發送數據包包頭IP信息的一些軟體。不過使用這些軟體有些缺點,譬如:耗費資源嚴重,降低計算機性能;訪問一些論壇或者網站時會受影響;不適合網吧用戶使用等等。現在的個人用戶採用最普及隱藏IP的方法應該是使用代理,由於使用代理伺服器後,「轉址服務」會對發送出去的數據包有所修改,致使「數據包分析」的方法失效。一些容易泄漏用戶IP的網路軟體(QQ、MSN、IE等)都支持使用代理方式連接Internet,特別是QQ使用「ezProxy」等代理軟體連接後,IP版的QQ都無法顯示該IP地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過代理,查找到對方的真實IP地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。

八、未加密登錄請求
由於Web配置不安全,登陸請求把諸如用戶名和密碼等敏感欄位未加密進行傳輸,攻擊者可以竊聽網路以劫獲這些敏感信息。建議進行例如SSH等的加密後再傳輸。

九、敏感信息泄露漏洞
SQL注入、XSS、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防禦方式不同

十、CSRF
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

Web應用是指採用B/S架構、通過HTTP/HTTPS協議提供服務的統稱。隨著互聯網的廣泛使用,Web應用已經融入到日常生活中的各個方面:網上購物、網路銀行應用、證券股票交易、政府行政審批等等。在這些Web訪問中,大多數應用不是靜態的網頁瀏覽,而是涉及到伺服器側的動態處理。此時,如果Java、PHP、ASP等程序語言的編程人員的安全意識不足,對程序參數輸入等檢查不嚴格等,會導致Web應用安全問題層出不窮。

本文根據當前Web應用的安全情況,列舉了Web應用程序常見的攻擊原理及危害,並給出如何避免遭受Web攻擊的建議。

Web應用漏洞原理
Web應用攻擊是攻擊者通過瀏覽器或攻擊工具,在URL或者其它輸入區域(如表單等),向Web伺服器發送特殊請求,從中發現Web應用程序存在的漏洞,從而進一步操縱和控制網站,查看、修改未授權的信息。

1.1 Web應用的漏洞分類
1、信息泄露漏洞

信息泄露漏洞是由於Web伺服器或應用程序沒有正確處理一些特殊請求,泄露Web伺服器的一些敏感信息,如用戶名、密碼、源代碼、伺服器信息、配置信息等。

造成信息泄露主要有以下三種原因:

–Web伺服器配置存在問題,導致一些系統文件或者配置文件暴露在互聯網中;

–Web伺服器本身存在漏洞,在瀏覽器中輸入一些特殊的字元,可以訪問未授權的文件或者動態腳本文件源碼;

–Web網站的程序編寫存在問題,對用戶提交請求沒有進行適當的過濾,直接使用用戶提交上來的數據。

2、目錄遍歷漏洞

目錄遍歷漏洞是攻擊者向Web伺服器發送請求,通過在URL中或在有特殊意義的目錄中附加「../」、或者附加「../」的一些變形(如「..\」或「..//」甚至其編碼),導致攻擊者能夠訪問未授權的目錄,以及在Web伺服器的根目錄以外執行命令。

3、命令執行漏洞

命令執行漏洞是通過URL發起請求,在Web伺服器端執行未授權的命令,獲取系統信息,篡改系統配置,控制整個系統,使系統癱瘓等。

命令執行漏洞主要有兩種情況:

–通過目錄遍歷漏洞,訪問系統文件夾,執行指定的系統命令;

–攻擊者提交特殊的字元或者命令,Web程序沒有進行檢測或者繞過Web應用程序過濾,把用戶提交的請求作為指令進行解析,導致執行任意命令。

4、文件包含漏洞

文件包含漏洞是由攻擊者向Web伺服器發送請求時,在URL添加非法參數,Web伺服器端程序變數過濾不嚴,把非法的文件名作為參數處理。這些非法的文件名可以是伺服器本地的某個文件,也可以是遠端的某個惡意文件。由於這種漏洞是由PHP變數過濾不嚴導致的,所以只有基於PHP開發的Web應用程序才有可能存在文件包含漏洞。

5、SQL注入漏洞

SQL注入漏洞是由於Web應用程序沒有對用戶輸入數據的合法性進行判斷,攻擊者通過Web頁面的輸入區域(如URL、表單等) ,用精心構造的SQL語句插入特殊字元和指令,通過和資料庫交互獲得私密信息或者篡改資料庫信息。SQL注入攻擊在Web攻擊中非常流行,攻擊者可以利用SQL注入漏洞獲得管理員許可權,在網頁上加掛木馬和各種惡意程序,盜取企業和用戶敏感信息。

6、跨站腳本漏洞

跨站腳本漏洞是因為Web應用程序時沒有對用戶提交的語句和變數進行過濾或限制,攻擊者通過Web頁面的輸入區域向資料庫或HTML頁面中提交惡意代碼,當用戶打開有惡意代碼的鏈接或頁面時,惡意代碼通過瀏覽器自動執行,從而達到攻擊的目的。跨站腳本漏洞危害很大,尤其是目前被廣泛使用的網路銀行,通過跨站腳本漏洞攻擊者可以冒充受害者訪問用戶重要賬戶,盜竊企業重要信息。

根據前期各個漏洞研究機構的調查顯示,SQL注入漏洞和跨站腳本漏洞的普遍程度排名前兩位,造成的危害也更加巨大。

1.2 SQL注入攻擊原理
SQL注入攻擊是通過構造巧妙的SQL語句,同網頁提交的內容結合起來進行注入攻擊。比較常用的手段有使用注釋符號、恆等式(如1=1)、使用union語句進行聯合查詢、使用insert或update語句插入或修改數據等,此外還可以利用一些內置函數輔助攻擊。

通過SQL注入漏洞攻擊網站的步驟一般如下:

第一步:探測網站是否存在SQL注入漏洞。

第二步:探測後台資料庫的類型。

第三步:根據後台資料庫的類型,探測系統表的信息。

第四步:探測存在的表信息。

第五步:探測表中存在的列信息。

第六步:探測表中的數據信息。

1.3 跨站腳本攻擊原理
跨站腳本攻擊的目的是盜走客戶端敏感信息,冒充受害者訪問用戶的重要賬戶。跨站腳本攻擊主要有以下三種形式:

1、本地跨站腳本攻擊

B給A發送一個惡意構造的Web URL,A點擊查看了這個URL,並將該頁面保存到本地硬碟(或B構造的網頁中存在這樣的功能)。A在本地運行該網頁,網頁中嵌入的惡意腳本可以A電腦上執行A持有的許可權下的所有命令。

2、反射跨站腳本攻擊

A經常瀏覽某個網站,此網站為B所擁有。A使用用戶名/密碼登錄B網站,B網站存儲下A的敏感信息(如銀行帳戶信息等)。C發現B的站點包含反射跨站腳本漏洞,編寫一個利用漏洞的URL,域名為B網站,在URL後面嵌入了惡意腳本(如獲取A的cookie文件),並通過郵件或社會工程學等方式欺騙A訪問存在惡意的URL。當A使用C提供的URL訪問B網站時,由於B網站存在反射跨站腳本漏洞,嵌入到URL中的惡意腳本通過Web伺服器返回給A,並在A瀏覽器中執行,A的敏感信息在完全不知情的情況下將發送給了C。

3、持久跨站腳本攻擊

B擁有一個Web站點,該站點允許用戶發布和瀏覽已發布的信息。C注意到B的站點具有持久跨站腳本漏洞,C發布一個熱點信息,吸引用戶閱讀。A一旦瀏覽該信息,其會話cookies或者其它信息將被C盜走。持久性跨站腳本攻擊一般出現在論壇、留言簿等網頁,攻擊者通過留言,將攻擊數據寫入伺服器資料庫中,瀏覽該留言的用戶的信息都會被泄漏。

Web應用漏洞的防禦實現
對於以上常見的Web應用漏洞漏洞,可以從如下幾個方面入手進行防禦:

1)對 Web應用開發者而言

大部分Web應用常見漏洞,都是在Web應用開發中,開發者沒有對用戶輸入的參數進行檢測或者檢測不嚴格造成的。所以,Web應用開發者應該樹立很強的安全意識,開發中編寫安全代碼;對用戶提交的URL、查詢關鍵字、HTTP頭、POST數據等進行嚴格的檢測和限制,只接受一定長度范圍內、採用適當格式及編碼的字元,阻塞、過濾或者忽略其它的任何字元。通過編寫安全的Web應用代碼,可以消除絕大部分的Web應用安全問題。

2) 對Web網站管理員而言

作為負責網站日常維護管理工作Web管理員,應該及時跟蹤並安裝最新的、支撐Web網站運行的各種軟體的安全補丁,確保攻擊者無法通過軟體漏洞對網站進行攻擊。

除了軟體本身的漏洞外,Web伺服器、資料庫等不正確的配置也可能導致Web應用安全問題。Web網站管理員應該對網站各種軟體配置進行仔細檢測,降低安全問題的出現可能。

此外,Web管理員還應該定期審計Web伺服器日誌,檢測是否存在異常訪問,及早發現潛在的安全問題。

3)使用網路防攻擊設備

前兩種為事前預防方式,是比較理想化的情況。然而在現實中,Web應用系統的漏洞還是不可避免的存在:部分Web網站已經存在大量的安全漏洞,而Web開發者和網站管理員並沒有意識到或發現這些安全漏洞。由於Web應用是採用HTTP協議,普通的防火牆設備無法對Web類攻擊進行防禦,因此可以使用IPS入侵防禦設備來實現安全防護。

H3C IPS Web攻擊防禦

H3C IPS入侵防禦設備有一套完整的Web攻擊防禦框架,能夠及時發現各種已經暴露的和潛在的Web攻擊。下圖為對於Web攻擊的總體防禦框架。

圖1:Web攻擊防禦框架,參見:http://blog.csdn.net/moshenglv/article/details/53439579

H3C IPS採用基於特徵識別的方式識別並阻斷各種攻擊。IPS設備有一個完整的特徵庫,並可定期以手工與自動的方式對特徵庫進行升級。當網路流量進入IPS後,IPS首先對報文進行預處理,檢測報文是否正確,即滿足協議定義要求,沒有錯誤欄位;如果報文正確,則進入深度檢測引擎。該引擎是IPS檢測的核心模塊,對通過IPS設備的Web流量進行深層次的分析,並與IPS攻擊庫中的特徵進行匹配,檢測Web流量是否存在異常;如果發現流量匹配了攻擊特徵,IPS則阻斷網路流量並上報日誌;否則,網路流量順利通過。

此Web攻擊防禦框架有如下幾個特點:

1) 構造完整的Web攻擊檢測模型,准確識別各種Web攻擊

針對Web攻擊的特點,考慮到各種Web攻擊的原理和形態,在不同漏洞模型之上開發出通用的、層次化的Web攻擊檢測模型,並融合到特徵庫中。這些模型抽象出Web攻擊的一般形態,對主流的攻擊能夠准確識別,使得模型通用化。

2) 檢測方式靈活,可以准確識別變形的Web攻擊

在實際攻擊中,攻擊者為了逃避防攻擊設備的檢測,經常對Web攻擊進行變形,如採用URL編碼技術、修改參數等。H3C根據Web應用漏洞發生的原理、攻擊方式和攻擊目標,對攻擊特徵進行了擴展。即使攻擊者修改攻擊參數、格式、語句等內容,相同漏洞原理下各種變形的攻擊同樣能夠被有效阻斷。這使得IPS的防禦范圍擴大,防禦的靈活性也顯著增強,極大的減少了漏報情況的出現。

3) 確保對最新漏洞及技術的跟蹤,有效阻止最新的攻擊

隨著Web攻擊出現的頻率日益增高,其危害有逐步擴展的趨勢。這對IPS設備在防禦的深度和廣度上提出了更高的要求,不僅要能夠防禦已有的Web攻擊,更要有效的阻止最新出現的、未公布的攻擊。目前,H3C已經建立起一套完整的攻防試驗環境,可以及時發現潛在Web安全漏洞。同時還在繼續跟蹤最新的Web攻擊技術和工具,及時更新Web攻擊的特徵庫,第一時間發布最新的Web漏洞應對措施,確保用戶的網路不受到攻擊。

4) 保證正常業務的高效運行

檢測引擎是IPS整個設備運行的關鍵,該引擎使用了高效、准確的檢測演算法,對通過設備的流量進行深層次的分析,並通過和攻擊特徵進行匹配,檢測流量是否存在異常。如果流量沒有匹配到攻擊特徵,則允許流量通過,不會妨礙正常的網路業務,在准確防禦的同時保證了正常業務的高效運行。

結束語

互聯網和Web技術廣泛使用,使Web應用安全所面臨的挑戰日益嚴峻,Web系統時時刻刻都在遭受各種攻擊的威脅,在這種情況下,需要制定一個完整的Web攻擊防禦解決方案,通過安全的Web應用程序、Web伺服器軟體、Web防攻擊設備共同配合,確保整個網站的安全。任何一個簡單的漏洞、疏忽都會造成整個網站受到攻擊,造成巨大損失。此外 ,Web攻擊防禦是一個長期持續的工作,隨著Web技術的發展和更新,Web攻擊手段也不斷發展,針對這些最新的安全威脅,需要及時調整Web安全防護策略,確保Web攻擊防禦的主動性,使Web網站在一個安全的環境中為企業和客戶服務。

原文鏈接:

Ⅳ 什麼是WEB漏洞如何防禦WEB攻擊漏洞

WEB漏洞通常是指網站程序上的漏洞,可能是由於代碼編寫者在編寫代碼時考慮不周全等原因而造成的漏洞,常見的WEB漏洞有Sql注入、Xss漏洞、上傳漏洞等。防禦可從產生的原因上入手,比如規范代碼,寫出嚴謹的程序。

Ⅳ 如何防止web應用DOS攻擊

一般用好的主機商 會自帶有這個防攻擊措施

Ⅵ 如何選擇Web安全防護產品

1、是否獲得OWASP Web應用防火牆認證證書
OWASP被視為Web應用安全領域的權威參考,OWASP TOP 10是IBMAPPSCAN、HP WEBINSPECT等掃描器漏洞參考的主要標准。能夠獲得OWASP的Web應用防火牆認證證書是對產品Web防護能力的高度肯定。
2、OWASP top10防禦能力達到4星
在OWASP的認證測評中,TOP10是OWASP為Web安全防護能力的主要測評項,防護效果直接影響最終的評分。在國內的安全產品中,能夠獲得4星評分的產品屈指可數,深信服下一代防火牆名列其中。
3、特徵+主動防護模式進行防護
Web攻擊防護主要依靠web攻擊特徵的編寫,而具備採用自動建模的技術的web安全防護產品可以自動學習網站的文件、目錄及參數,形成白名單實現主動防禦。採用特徵+主動防禦模式可綜合抵禦已知未知威脅達到最佳的防護效果。
4、Web攻擊特徵達到2000條以上
Web攻擊特徵庫是決定OWASP top10威脅的主要評估依據,由於Web攻擊採用逃逸的手段很多,只有充分編譯各類攻擊特徵才能起到有效的防護效果。2000條特徵是同類產品專業性的一個初級評判標准。
5、提供系統漏洞、應用漏洞攻擊的防護能力
Web系統的風險包括以下幾類:
系統底層漏洞(如windows、linux操作系統漏洞)
發布軟體漏洞(IIS、Aapach等)
資料庫中間件漏洞(oracle、sql server、my sql等漏洞)
Web應用漏洞(Web漏洞攻擊)
Web安全防護產品不僅僅需要具備Web攻擊防護能力,還需具備上述的系統漏洞、應用漏洞等的攻擊防護的技術。
6、具備攻擊效果事後處理的能力
未知威脅的不斷新增,僅依靠攻擊特徵的方式進行安全防護永遠會落後於黑客攻擊的新手段。一款專業的Web安全防護產品應從黑客攻擊要達到的效果出發,同時提供事後處理的技術手段。
7、應用層性能滿足業務的要求
Web安全防護產品其資源消耗主要是由應用層流量檢測引起。一款優秀的Web安全產品應做到軟硬體的技術改良以提升應用層的性能,滿足大規模Web系統集群的應用層性能的要求。

Ⅶ Web怎樣防止重放攻擊

單獨的隨機數不能避免重放攻擊,隨機數一般會和簽名加密技術,後台驗證技術混合以提高破解和重放難度。

重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊或新鮮性攻擊(Freshness Attacks),是指攻擊者發送一個目的主機已接收過的包,來達到欺騙系統的目的,主要用於身份認證過程,破壞認證的正確性。

從重放攻擊的定義上我們可以看到,重放攻擊提交給伺服器的數據是曾經有效的,如何防止這種數據,對特定信息給與一個特定的隨機數,並且這個隨機數保存在伺服器內,在驗證了用戶信息前,首先會對隨機數進行驗證,如果發現提交的隨機數和伺服器保存的不同則,該條信息無效通過這種方法來防止重放攻擊。

常用的防禦重放攻擊,不會直接暴露隨機數,一般隨機數會用在MD5,HASH(數字簽名)上,比如在對有效值進行MD5加密時添加隨機數,如用戶名為test,密碼為test的MD5加密過程可能為MD5("test","test",隨機數),這樣在直接傳輸時不會暴露出隨機值,黑客在提交重放攻擊時系統發現MD5簽名和系統簽名計算後不同則,可被認定為重放攻擊。

當然矛和盾是一種存在的,有可能該值剛好又一次的分配給了該用戶,可能會重放攻擊成功,但這個概率在科學計算上可以被視為0,而且隨著隨機數的位數的提高,概率會不斷降低。

Ⅷ web攻擊有哪些怎麼防護

1、DoS和DDoS攻擊(DoS(Denial of Service),即拒絕服務,造成遠程伺服器拒絕服務的行為被稱為DoS攻擊。其目的是使計算機或網路無法提供正常的服務。最常見的DoS攻擊有計算機網路帶寬攻擊和連通性攻擊)
防範:(1) 反欺騙:對數據包的地址及埠的正確性進行驗證,同時進行反向探測。(2) 協議棧行為模式分析:每個數據包類型需要符合RFC規定,這就好像每個數據包都要有完整規范的著裝,只要不符合規范,就自動識別並將其過濾掉。(3) 特定應用防護:非法流量總是有一些特定特徵的,這就好比即便你混進了顧客群中,但你的行為還是會暴露出你的動機,比如老重復問店員同一個問題,老做同樣的動作,這樣你仍然還是會被發現的。(4) 帶寬控制:真實的訪問數據過大時,可以限制其最大輸出的流量,以減少下游網路系統的壓力。
2、CSRF(Cross Site Request Forgery),即跨站請求偽造,是一種常見的Web攻擊,但很多開發者對它很陌生。CSRF也是Web安全中最容易被忽略的一種攻擊。
防範:(1) 驗證碼。應用程序和用戶進行交互過程中,特別是賬戶交易這種核心步驟,強制用戶輸入驗證碼,才能完成最終請求。在通常情況下,驗證碼夠很好地遏制CSRF攻擊。但增加驗證碼降低了用戶的體驗,網站不能給所有的操作都加上驗證碼。所以只能將驗證碼作為一種輔助手段,在關鍵業務點設置驗證碼。(2) Referer Check。HTTP Referer是header的一部分,當瀏覽器向web伺服器發送請求時,一般會帶上Referer信息告訴伺服器是從哪個頁面鏈接過來的,伺服器籍此可以獲得一些信息用於處理。可以通過檢查請求的來源來防禦CSRF攻擊。正常請求的referer具有一定規律,如在提交表單的referer必定是在該頁面發起的請求。所以通過檢查http包頭referer的值是不是這個頁面,來判斷是不是CSRF攻擊。但在某些情況下如從https跳轉到http,瀏覽器處於安全考慮,不會發送referer,伺服器就無法進行check了。若與該網站同域的其他網站有XSS漏洞,那麼攻擊者可以在其他網站注入惡意腳本,受害者進入了此類同域的網址,也會遭受攻擊。出於以上原因,無法完全依賴Referer Check作為防禦CSRF的主要手段。但是可以通過Referer Check來監控CSRF攻擊的發生。(3) Anti CSRF Token。目前比較完善的解決方案是加入Anti-CSRF-Token,即發送請求時在HTTP 請求中以參數的形式加入一個隨機產生的token,並在伺服器建立一個攔截器來驗證這個token。伺服器讀取瀏覽器當前域cookie中這個token值,會進行校驗該請求當中的token和cookie當中的token值是否都存在且相等,才認為這是合法的請求。否則認為這次請求是違法的,拒絕該次服務。這種方法相比Referer檢查要安全很多,token可以在用戶登陸後產生並放於session或cookie中,然後在每次請求時伺服器把token從session或cookie中拿出,與本次請求中的token 進行比對。由於token的存在,攻擊者無法再構造出一個完整的URL實施CSRF攻擊。但在處理多個頁面共存問題時,當某個頁面消耗掉token後,其他頁面的表單保存的還是被消耗掉的那個token,其他頁面的表單提交時會出現token錯誤。
3、XSS(Cross Site Scripting),跨站腳本攻擊。為和層疊樣式表(Cascading Style Sheets,CSS)區分開,跨站腳本在安全領域叫做「XSS」。
防範:(1) 輸入過濾。永遠不要相信用戶的輸入,對用戶輸入的數據做一定的過濾。如輸入的數據是否符合預期的格式,比如日期格式,Email格式,電話號碼格式等等。這樣可以初步對XSS漏洞進行防禦。上面的措施只在web端做了限制,攻擊者通抓包工具如Fiddler還是可以繞過前端輸入的限制,修改請求注入攻擊腳本。因此,後台伺服器需要在接收到用戶輸入的數據後,對特殊危險字元進行過濾或者轉義處理,然後再存儲到資料庫中。(2) 輸出編碼。伺服器端輸出到瀏覽器的數據,可以使用系統的安全函數來進行編碼或轉義來防範XSS攻擊。在PHP中,有htmlentities()和htmlspecialchars()兩個函數可以滿足安全要求。相應的JavaScript的編碼方式可以使用JavascriptEncode。(3) 安全編碼。開發需盡量避免Web客戶端文檔重寫、重定向或其他敏感操作,同時要避免使用客戶端數據,這些操作需盡量在伺服器端使用動態頁面來實現。(4) HttpOnly Cookie。預防XSS攻擊竊取用戶cookie最有效的防禦手段。Web應用程序在設置cookie時,將其屬性設為HttpOnly,就可以避免該網頁的cookie被客戶端惡意JavaScript竊取,保護用戶cookie信息。(5)WAF(Web Application Firewall),Web應用防火牆,主要的功能是防範諸如網頁木馬、XSS以及CSRF等常見的Web漏洞攻擊。由第三方公司開發,在企業環境中深受歡迎。
4、SQL注入(SQL Injection),應用程序在向後台資料庫傳遞SQL(Structured Query Language,結構化查詢語言)時,攻擊者將SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。
防範:(1) 防止系統敏感信息泄露。設置php.ini選項display_errors=off,防止php腳本出錯之後,在web頁面輸出敏感信息錯誤,讓攻擊者有機可乘。(2) 數據轉義。設置php.ini選項magic_quotes_gpc=on,它會將提交的變數中所有的』(單引號),」(雙引號),\(反斜杠),空白字元等都在前面自動加上\。或者採用mysql_real_escape()函數或addslashes()函數進行輸入參數的轉義。(3) 增加黑名單或者白名單驗證。白名單驗證一般指,檢查用戶輸入是否是符合預期的類型、長度、數值范圍或者其他格式標准。黑名單驗證是指,若在用戶輸入中,包含明顯的惡意內容則拒絕該條用戶請求。在使用白名單驗證時,一般會配合黑名單驗證。
5、上傳漏洞在DVBBS6.0時代被黑客們利用的最為猖獗,利用上傳漏洞可以直接得到WEBSHELL,危害等級超級高,現在的入侵中上傳漏洞也是常見的漏洞。該漏洞允許用戶上傳任意文件可能會讓攻擊者注入危險內容或惡意代碼,並在伺服器上運行。
防範: (1)檢查伺服器是否判斷了上傳文件類型及後綴。 (2) 定義上傳文件類型白名單,即只允許白名單裡面類型的文件上傳。 (3) 文件上傳目錄禁止執行腳本解析,避免攻擊者進行二次攻擊。 Info漏洞 Info漏洞就是CGI把輸入的參數原樣輸出到頁面,攻擊者通過修改輸入參數而達到欺騙用戶的目的。

Ⅸ javaweb開發怎麼防止機器攻擊一直刷簡訊驗證碼

一般現在系統群發的驗證碼都是由專門的簡訊群發平台發送的,號段一般是106,如果有收不到的情況,可能是被運營商攔截了或者是系統延遲了

Ⅹ 請問資料庫安全防護系統可以防止web攻擊嗎

從資料庫安全防護產品部署位置來看,是部署在資料庫和資料庫訪問者之間的,對於發生於應用客戶端到應用伺服器的web攻擊不知道,所以一般是防止不了的。但是產品可以在web來的攻擊突破了應用伺服器後,在資料庫之前做出最後一道防守,防止惡意攻擊,數據竊取。數據可以加密存儲到資料庫中,及時數據被竊取看到的也是亂碼。安華金和是一家專業做數據安全的廠商,關於此可以向他們咨詢。
您的採納是對我成長的鞭策