国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

php常見(jiàn)的網(wǎng)絡(luò)攻擊及防御方法

瀏覽:79日期:2022-09-07 17:38:47

常見(jiàn)的Web攻擊分為兩類:一是利用Web服務(wù)器的漏洞進(jìn)行攻擊,如CGI緩沖區(qū)溢出,目錄遍歷漏洞利用等攻擊;二是利用網(wǎng)頁(yè)自身的安全漏洞進(jìn)行攻擊,如SQL注入,跨站腳本攻擊等。下面這篇文章主要介紹了PHP安全防護(hù)之Web攻擊,需要的朋友可以參考,下面來(lái)一起看看吧。

SQL注入攻擊(SQL Injection)

攻擊者把SQL命令插入到Web表單的輸入域或頁(yè)面請(qǐng)求的字符串,欺騙服務(wù)器執(zhí)行惡意的SQL命令。在某些表單中,用戶輸入的內(nèi)容直接用來(lái)構(gòu)造(或者影響)動(dòng)態(tài)SQL命令,或作為存儲(chǔ)過(guò)程的輸入?yún)?shù),這類表單特別容易受到SQL注入式攻擊。

常見(jiàn)的SQL注入式攻擊過(guò)程類如

1.某個(gè)Web應(yīng)用有一個(gè)登錄頁(yè)面,這個(gè)登錄頁(yè)面控制著用戶是否有權(quán)訪問(wèn)應(yīng)用,它要求用戶輸入一個(gè)名稱和密碼;

2.登錄頁(yè)面中輸入的內(nèi)容將直接用來(lái)構(gòu)造動(dòng)態(tài)的SQL命令,或者直接用作存儲(chǔ)過(guò)程的參數(shù);

例如:

$query = ’SELECT * from Users WHERE login = ’ . $username . ’ AND password = ’ . $password;

3.攻擊者在用戶名字和密碼輸入框中輸入’或’1’=’1之類的內(nèi)容;

4.用戶輸入的內(nèi)容提交給服務(wù)器之后,服務(wù)器運(yùn)行上面的代碼構(gòu)造出查詢用戶的SQL命令,但由于攻擊者輸入的內(nèi)容非常特殊,所以最后得到的SQL命令變成:

SELECT * from Users WHERE login = ’’ or ’1’=’1’ AND password = ’’ or ’1’=’1’;

5.服務(wù)器執(zhí)行查詢或存儲(chǔ)過(guò)程,將用戶輸入的身份信息和服務(wù)器中保存的身份信息進(jìn)行對(duì)比;

6.由于SQL命令實(shí)際上已被注入式攻擊修改,已經(jīng)不能真正驗(yàn)證用戶身份,所以系統(tǒng)會(huì)錯(cuò)誤地授權(quán)給攻擊者。

如果攻擊者知道應(yīng)用會(huì)將表單中輸入的內(nèi)容直接用于驗(yàn)證身份的查詢,他就會(huì)嘗試輸入某些特殊的SQL字符串篡改查詢改變其原來(lái)的功能,欺騙系統(tǒng)授予訪問(wèn)權(quán)限。

系統(tǒng)環(huán)境不同,攻擊者可能造成的損害也不同,這主要由應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù)的安全權(quán)限決定。如果用戶的帳戶具有管理員或其他比較高級(jí)的權(quán)限,攻擊者就可能對(duì)數(shù)據(jù)庫(kù)的表執(zhí)行各種他想要做的操作,包括添加、刪除或更新數(shù)據(jù),甚至可能直接刪除表

防范方法 檢查變量數(shù)據(jù)類型和格式 過(guò)濾特殊符號(hào) 綁定變量,使用預(yù)編譯語(yǔ)句跨網(wǎng)站腳本攻擊(Cross Site Scripting, XSS)

攻擊者將惡意代碼注入到網(wǎng)頁(yè)上,其他用戶在加載網(wǎng)頁(yè)時(shí)就會(huì)執(zhí)行代碼,攻擊者可能得到包括但不限于更高的權(quán)限(如執(zhí)行一些操作)、私密網(wǎng)頁(yè)內(nèi)容、會(huì)話和cookie等各種內(nèi)容。這些惡意代碼通常是JavaScript、HTML以及其他客戶端腳本語(yǔ)言。例如:

<?phpecho '歡迎您,'.$_GET[’name’];

如果傳入一段腳本

<script>[code]</script>

那么腳本也會(huì)執(zhí)行。用這樣的URL將會(huì)執(zhí)行JavaScript的alert函數(shù)彈出一個(gè)對(duì)話框:

http://localhost/test.php?name=<script>alert(123456)</script>

常用的攻擊手段有

盜用cookie,獲取敏感信息;

利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻擊)用戶的身份執(zhí)行一些管理動(dòng)作,或執(zhí)行一些一般的如發(fā)微博、加好友、發(fā)私信等操作;

利用可被攻擊的域受到其他域信任的特點(diǎn),以受信任來(lái)源的身份請(qǐng)求一些平時(shí)不允許的操作,如進(jìn)行不當(dāng)?shù)耐镀被顒?dòng);

在訪問(wèn)量極大的一些頁(yè)面上的XSS可以攻擊一些小型網(wǎng)站,實(shí)現(xiàn)DDoS攻擊的效果。

防范方法

使用htmlspecialchars函數(shù)將特殊字符轉(zhuǎn)換成HTML編碼,過(guò)濾輸出的變量

跨網(wǎng)站請(qǐng)求偽造攻擊(Cross Site Request Forgeries, CSRF)

攻擊者偽造目標(biāo)用戶的HTTP請(qǐng)求,然后此請(qǐng)求發(fā)送到有CSRF漏洞的網(wǎng)站,網(wǎng)站執(zhí)行此請(qǐng)求后,引發(fā)跨站請(qǐng)求偽造攻擊。攻擊者利用隱蔽的HTTP連接,讓目標(biāo)用戶在不注意的情況下單擊這個(gè)鏈接,由于是用戶自己點(diǎn)擊的,而他又是合法用戶擁有合法權(quán)限,所以目標(biāo)用戶能夠在網(wǎng)站內(nèi)執(zhí)行特定的HTTP鏈接,從而達(dá)到攻擊者的目的。

它與XSS的攻擊方法不同,XSS利用漏洞影響站點(diǎn)內(nèi)的用戶,攻擊目標(biāo)是同一站點(diǎn)內(nèi)的用戶者,而CSRF 通過(guò)偽裝成受害用戶發(fā)送惡意請(qǐng)求來(lái)影響Web系統(tǒng)中受害用戶的利益。

例如

某個(gè)購(gòu)物網(wǎng)站購(gòu)買(mǎi)商品時(shí),采用http://www.shop.com/buy.php?item=watch&num=100,item參數(shù)確定要購(gòu)買(mǎi)什么物品,num參數(shù)確定要購(gòu)買(mǎi)數(shù)量,如果攻擊者以隱藏的方式發(fā)送給目標(biāo)用戶鏈接,那么如果目標(biāo)用戶不小心訪問(wèn)以后,購(gòu)買(mǎi)的數(shù)量就成了100個(gè)

防范方法 檢查網(wǎng)頁(yè)的來(lái)源 檢查內(nèi)置的隱藏變量 使用POST,不要使用GET,處理變量也不要直接使用$_REQUESTSession固定攻擊(Session Fixation)

這種攻擊方式的核心要點(diǎn)就是讓合法用戶使用攻擊者預(yù)先設(shè)定的session id來(lái)訪問(wèn)被攻擊的應(yīng)用程序,一旦用戶的會(huì)話ID被成功固定,攻擊者就可以通過(guò)此session id來(lái)冒充用戶訪問(wèn)應(yīng)用程序。

例如 攻擊者訪問(wèn)網(wǎng)站http:///www.bank.com,獲取他自己的session id,如:SID=123; 攻擊者給目標(biāo)用戶發(fā)送鏈接,并帶上自己的session id,如:http:///www.bank.com/?SID=123; 目標(biāo)用戶點(diǎn)擊了http:///www.bank.com/?SID=123,像往常一樣,輸入自己的用戶名、密碼登錄到網(wǎng)站; 由于服務(wù)器的session id不改變,現(xiàn)在攻擊者點(diǎn)擊http:///www.bank.com/?SID=123,他就擁有了目標(biāo)用戶的身份,可以為所欲為了。防范方法

1.定期更改session id

session_regenerate_id(TRUE);//刪除舊的session文件,每次都會(huì)產(chǎn)生一個(gè)新的session id。默認(rèn)false,保留舊的session

2.更改session的名稱

session的默認(rèn)名稱是PHPSESSID,此變量會(huì)保存在cookie中,如果攻擊者不抓包分析,就不能猜到這個(gè)名稱,阻擋部分攻擊

session_name('mysessionid');

3.關(guān)閉透明化session id

透明化session id指當(dāng)瀏覽器中的http請(qǐng)求沒(méi)有使用cookie來(lái)制定session id時(shí),sessioin id使用鏈接來(lái)傳遞

int_set('session.use_trans_sid', 0);

4.只從cookie檢查session id

int_set('session.use_cookies', 1);//表示使用cookies存放session idint_set('session.use_only_cookies', 1);//表示只使用cookies存放session id

5.使用URL傳遞隱藏參數(shù)

$sid = md5(uniqid(rand()), TRUE));$_SESSION['sid'] = $sid;//攻擊者雖然能獲取session數(shù)據(jù),但是無(wú)法得知$sid的值,只要檢查sid的值,就可以確認(rèn)當(dāng)前頁(yè)面是否是web程序自己調(diào)用的Session劫持攻擊(Session Hijacking)

會(huì)話劫持是指攻擊者利用各種手段來(lái)獲取目標(biāo)用戶的session id。一旦獲取到session id,那么攻擊者可以利用目標(biāo)用戶的身份來(lái)登錄網(wǎng)站,獲取目標(biāo)用戶的操作權(quán)限。

攻擊者獲取目標(biāo)用戶session id的方法 暴力破解:嘗試各種session id,直到破解為止; 計(jì)算:如果session id使用非隨機(jī)的方式產(chǎn)生,那么就有可能計(jì)算出來(lái); 竊取:使用網(wǎng)絡(luò)截獲,xss攻擊等方法獲得防范方法 定期更改session id 更改session的名稱 關(guān)閉透明化session id 設(shè)置HttpOnly。通過(guò)設(shè)置Cookie的HttpOnly為true,可以防止客戶端腳本訪問(wèn)這個(gè)Cookie,從而有效的防止XSS攻擊。文件上傳漏洞攻擊(File Upload Attack)

文件上傳漏洞指攻擊者利用程序缺陷繞過(guò)系統(tǒng)對(duì)文件的驗(yàn)證與處理策略將惡意代碼上傳到服務(wù)器并獲得執(zhí)行服務(wù)器端命令的能力。

常用的攻擊手段有 上傳Web腳本代碼,Web容器解釋執(zhí)行上傳的惡意腳本; 上傳Flash跨域策略文件crossdomain.xml,修改訪問(wèn)權(quán)限(其他策略文件利用方式類似); 上傳病毒、木馬文件,誘騙用戶和管理員下載執(zhí)行; 上傳包含腳本的圖片,某些瀏覽器的低級(jí)版本會(huì)執(zhí)行該腳本,用于釣魚(yú)和欺詐。 總的來(lái)說(shuō),利用的上傳文件要么具備可執(zhí)行能力(惡意代碼),要么具備影響服務(wù)器行為的能力(配置文件)。防范方法 文件上傳的目錄設(shè)置為不可執(zhí)行; 判斷文件類型,設(shè)置白名單。對(duì)于圖片的處理,可以使用壓縮函數(shù)或者resize函數(shù),在處理圖片的同時(shí)破壞圖片中可能包含的HTML代碼; 使用隨機(jī)數(shù)改寫(xiě)文件名和文件路徑:一個(gè)是上傳后無(wú)法訪問(wèn);再來(lái)就是像shell.php.rar.rar和crossdomain.xml這種文件,都將因?yàn)橹孛鵁o(wú)法攻擊; 單獨(dú)設(shè)置文件服務(wù)器的域名:由于瀏覽器同源策略的關(guān)系,一系列客戶端攻擊將失效,比如上傳crossdomain.xml、上傳包含Javascript的XSS利用等問(wèn)題將得到解決。

以上就是php常見(jiàn)的網(wǎng)絡(luò)攻擊及防御方法的詳細(xì)內(nèi)容,更多關(guān)于php攻擊及防御的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 抚顺县| 山阳县| 图木舒克市| 峡江县| 通海县| 九龙县| 平潭县| 安国市| 岳池县| 晋州市| 武川县| 舟山市| 郴州市| 宕昌县| 牙克石市| 同江市| 罗甸县| 前郭尔| 阿拉善右旗| 仪征市| 南昌县| 武城县| 新绛县| 任丘市| 新沂市| 深州市| 永福县| 拜泉县| 吉首市| 米脂县| 兰州市| 荃湾区| 葫芦岛市| 惠水县| 尼玛县| 博客| 万荣县| 青海省| 桑日县| 新源县| 安塞县|