PHP安全防護(hù)web攻擊實(shí)例介紹
網(wǎng)絡(luò)安全是目前互聯(lián)網(wǎng)的熱門話題之一,作為個(gè)人用戶的我們同樣需要關(guān)注,做好防護(hù)。常見的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注入式攻擊。
常見的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ù),甚至可能直接刪除表
防范方法:
1.檢查變量數(shù)據(jù)類型和格式
2.過(guò)濾特殊符號(hào)
3.綁定變量,使用預(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ǔ)言。
例如:
echo "歡迎您,".$_GET['name'];
如果傳入一段腳本 ,那么腳本也會(huì)執(zhí)行。用這樣的URL將會(huì)執(zhí)行JavaScript的alert函數(shù)彈出一個(gè)對(duì)話框:常用的攻擊手段有:
盜用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)買商品時(shí),item參數(shù)確定要購(gòu)買什么物品,num參數(shù)確定要購(gòu)買數(shù)量,如果攻擊者以隱藏的方式發(fā)送給目標(biāo)用戶鏈接
,那么如果目標(biāo)用戶不小心訪問(wèn)以后,購(gòu)買的數(shù)量就成了100個(gè)
防范方法:
1、檢查網(wǎng)頁(yè)的來(lái)源
2、檢查內(nèi)置的隱藏變量
3、使用POST,不要使用GET,處理變量也不要直接使用$_REQUEST
相關(guān)閱讀:2018網(wǎng)絡(luò)安全事件:
一、英特爾處理器曝“Meltdown”和“Spectre漏洞”
2018年1月,英特爾處理器中曝“Meltdown”(熔斷)和“Spectre” (幽靈)兩大新型漏洞,包括AMD、ARM、英特爾系統(tǒng)和處理器在內(nèi),幾乎近20年發(fā)售的所有設(shè)備都受到影響,受影響的設(shè)備包括手機(jī)、電腦、服務(wù)器以及云計(jì)算產(chǎn)品。這些漏洞允許惡意程序從其它程序的內(nèi)存空間中竊取信息,這意味著包括密碼、帳戶信息、加密密鑰乃至其它一切在理論上可存儲(chǔ)于內(nèi)存中的信息均可能因此外泄。
二、GitHub 遭遇大規(guī)模 Memcached DDoS 攻擊
2018年2月,知名代碼托管網(wǎng)站 GitHub 遭遇史上大規(guī)模 Memcached DDoS 攻擊,流量峰值高達(dá)1.35 Tbps。然而,事情才過(guò)去五天,DDoS攻擊再次刷新紀(jì)錄,美國(guó)一家服務(wù)提供商遭遇DDoS 攻擊的峰值創(chuàng)新高,達(dá)到1.7 Tbps!攻擊者利用暴露在網(wǎng)上的 Memcached 服務(wù)器進(jìn)行攻擊。網(wǎng)絡(luò)安全公司 Cloudflare 的研究人員發(fā)現(xiàn),截止2018年2月底,中國(guó)有2.5萬(wàn) Memcached 服務(wù)器暴露在網(wǎng)上 。
三、蘋果 iOS iBoot源碼泄露
2018年2月,開源代碼分享網(wǎng)站 GitHub(軟件項(xiàng)目托管平臺(tái))上有人共享了 iPhone 操作系統(tǒng)的核心組件源碼,泄露的代碼屬于 iOS 安全系統(tǒng)的重要組成部分——iBoot。iBoot 相當(dāng)于是 Windows 電腦的 BIOS 系統(tǒng)。此次 iBoot 源碼泄露可能讓數(shù)以億計(jì)的 iOS 設(shè)備面臨安全威脅。iOS 與 MacOS 系統(tǒng)開發(fā)者 Jonathan Levin 表示,這是 iOS 歷史上最嚴(yán)重的一次泄漏事件。
四、韓國(guó)平昌冬季奧運(yùn)會(huì)遭遇黑客攻擊
2018年2月,韓國(guó)平昌冬季奧運(yùn)會(huì)開幕式當(dāng)天遭遇黑客攻擊,此次攻擊造成網(wǎng)絡(luò)中斷,廣播系統(tǒng)(觀眾不能正常觀看直播)和奧運(yùn)會(huì)官網(wǎng)均無(wú)法正常運(yùn)作,許多觀眾無(wú)法打印開幕式門票,最終未能正常入場(chǎng)。
五、加密貨幣采礦軟件攻擊致歐洲廢水處理設(shè)施癱瘓
2018年2月中旬,工業(yè)網(wǎng)絡(luò)安全企業(yè) Radiflow 公司表示,發(fā)現(xiàn)四臺(tái)接入歐洲廢水處理設(shè)施運(yùn)營(yíng)技術(shù)網(wǎng)絡(luò)的服務(wù)器遭遇加密貨幣采礦惡意軟件的入侵。該惡意軟件直接拖垮了廢水處理設(shè)備中的 HMI 服務(wù)器 CPU,致歐洲廢水處理服務(wù)器癱瘓 。
Radiflow 公司稱,此次事故是加密貨幣惡意軟件首次對(duì)關(guān)鍵基礎(chǔ)設(shè)施運(yùn)營(yíng)商的運(yùn)營(yíng)技術(shù)網(wǎng)絡(luò)展開攻擊。由于受感染的服務(wù)器為人機(jī)交互(簡(jiǎn)稱HMI)設(shè)備,之所以導(dǎo)致廢水處理系統(tǒng)癱瘓,是因?yàn)檫@種惡意軟件會(huì)嚴(yán)重降低 HMI 的運(yùn)行速度。
web攻擊相關(guān)文章: