溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

發(fā)布時(shí)間:2022-01-17 18:30:31 來(lái)源:億速云 閱讀:135 作者:柒染 欄目:網(wǎng)絡(luò)安全

這篇文章的內(nèi)容主要圍繞WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過(guò)這篇文章有所收獲!

SQL注入漏洞

  • SQL注入漏洞產(chǎn)生原因及危害

  • 在sql查詢中很多程序員會(huì)將變量拼接入sql語(yǔ)句后再進(jìn)行查詢,這樣如果黑客在參數(shù)中插入其他sql語(yǔ)句就可能導(dǎo)致我們網(wǎng)站的密碼被被黑客查詢出來(lái)或者被拖取大量數(shù)據(jù),如果在開(kāi)發(fā)中使用了字符串拼接進(jìn)SQL語(yǔ)句就必須進(jìn)行嚴(yán)格的過(guò)濾,任何用戶輸入的內(nèi)容都不可信任,以下列舉幾種防御方法。

數(shù)字型查詢注入防護(hù)

查詢例子如下

如果是這樣的數(shù)字型注入我們可以強(qiáng)制將傳入?yún)?shù)轉(zhuǎn)換為整數(shù),以剔除黑客拼接的SQL語(yǔ)句。修改如下

這是這個(gè)網(wǎng)頁(yè)正常查詢的返回的結(jié)果。

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

這是一個(gè)典型的數(shù)字型注入,我們輸入注入語(yǔ)句可見(jiàn)注入成功

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

我們強(qiáng)制轉(zhuǎn)換類型到代碼中:

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

我們?cè)賵?zhí)行注入可以看到恢復(fù)正常查詢,注入失敗。

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

非數(shù)字型注入防護(hù)-通用防護(hù)

如果查詢參數(shù)不是數(shù)字,那么我們?cè)撊绾畏雷o(hù)呢,那么這里可以使用通用型防護(hù),對(duì)數(shù)字型和非數(shù)字型同樣適用,我們知道web中獲取參數(shù)的方式主要有三種分別是get、post、cookie。那么我們防護(hù)的主要方面也是這三個(gè)方面,我們可以對(duì)網(wǎng)站的所有流量進(jìn)行黑名單過(guò)濾。當(dāng)然這個(gè)也可以攔截xss漏洞。具體流程如下:

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

具體實(shí)現(xiàn)代碼:

測(cè)試

同樣我們?cè)谠鹊木W(wǎng)站上將我們的waf.php文件包含進(jìn)去,在執(zhí)行注入操作,可見(jiàn)我們已經(jīng)將非法操作攔截。

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

使用預(yù)處理對(duì)注入進(jìn)行防護(hù)

PHP預(yù)處理查詢的例子

  • 預(yù)處理的優(yōu)點(diǎn)

  • 預(yù)處理語(yǔ)句大大減少了分析時(shí)間,只做了一次查詢(雖然語(yǔ)句多次執(zhí)行)。

  • 綁定參數(shù)減少了服務(wù)器帶寬,你只需要發(fā)送查詢的參數(shù),而不是整個(gè)語(yǔ)句。

  • 預(yù)處理語(yǔ)句針對(duì)SQL注入是非常有用的,因?yàn)閰?shù)值發(fā)送后使用不同的協(xié)議,保證了數(shù)據(jù)的合法性。

XSS漏洞的防護(hù)

  • xss漏洞產(chǎn)生的原因及危害

  • xss漏洞和sql注入一樣也是注入型漏洞,主要是黑客在網(wǎng)頁(yè)中注入惡意的js代碼,可以導(dǎo)致我們的cookie被盜取,黑客通過(guò)cookie欺騙就能輕松登陸我們的后臺(tái),黑客也可以利用js進(jìn)行掛馬、黑帽seo、攻擊客戶計(jì)算機(jī)等操作危害十分嚴(yán)重。那么如何防御呢,我將講解兩種主要防御方法。

  • xss分類

  • xss主要分為反射型,儲(chǔ)存型、和DOM型

轉(zhuǎn)義 htmlspecialchars()

我們知道在數(shù)據(jù)庫(kù)查詢出來(lái)的數(shù)據(jù)可以打印到網(wǎng)頁(yè)上,但是數(shù)據(jù)可能是用戶在注冊(cè)或者輸入其他表單輸入的,那么這里用戶可能輸入的是js或者h(yuǎn)tml代碼,這里就可能導(dǎo)致,用戶輸入的代碼在瀏覽器中被解析并執(zhí)行,那么我們這就可以通過(guò) htmlspecialchars()將其轉(zhuǎn)義為不可解析的字符串,從而避免此類攻擊。

這是一個(gè)模擬存在xss漏洞的網(wǎng)頁(yè)。我們進(jìn)行模擬攻擊和修復(fù)。

我們傳入一個(gè)xss攻擊代碼,可見(jiàn)直接獲取了當(dāng)前網(wǎng)頁(yè)的cookie內(nèi)容

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

那我們?cè)谳敵鰰r(shí)候給$id加上htmlspecialchars()呢

我們可以明顯看到瀏覽器不再解析我們傳入的js代碼,而是將它當(dāng)做普通字符串輸出。

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

通用型防護(hù)

將我們sql注入的通用型防護(hù)waf.php包含到該網(wǎng)頁(yè)同樣可以實(shí)現(xiàn)過(guò)濾。

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

CSRF漏洞的防御

  • CSRF漏洞產(chǎn)生的原因和危害

  • CSRF漏洞主要是我們的網(wǎng)站沒(méi)有對(duì)表單驗(yàn)證,這個(gè)表單是不是我們網(wǎng)站自己本身提交的,如果有一個(gè)改密碼的表單被人構(gòu)造并放在了其他人的網(wǎng)站上,我們?cè)诖蜷_(kāi)這個(gè)黑客精心構(gòu)造的域外表單時(shí)候就導(dǎo)致了我們本身的密碼被修改,黑客也可以通過(guò)CSRF漏洞進(jìn)行蠕蟲式傳播,新浪微博就曾遭遇過(guò)此類攻擊,黑客精心構(gòu)造表單,當(dāng)你打開(kāi)這個(gè)表單的鏈接時(shí)候就會(huì)自動(dòng)發(fā)送一條微博,其他人打開(kāi)同樣進(jìn)行這樣的操作。

TOKEN防護(hù)

我們?nèi)绾悟?yàn)證這個(gè)表單是不是我們自己網(wǎng)站本身提交的呢,那么我們可以在每個(gè)表單下生成一個(gè)隱藏的input表單存放一個(gè)TOKEN,在進(jìn)行表單提交時(shí)會(huì)驗(yàn)證這TOKEN是否在SESSION上,如果在就執(zhí)行這個(gè)表單的操作,如果TOKEN不在或者根本沒(méi)提交TOKEN那么說(shuō)明表單是偽造的,我們直接截?cái)嗖僮?。具體流程如下:

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

防護(hù)代碼編寫:

測(cè)試

  • 我們分別寫兩個(gè)文件分別是index.php用于提交表單,xss.php用于驗(yàn)證表單

  • index.php

xss.php

可以看到我們代碼非常簡(jiǎn)單,只要我們通過(guò)動(dòng)態(tài)的TOKEN驗(yàn)證,那就會(huì)輸出check success,否則輸出NO-TOKEN!

首先我們直接提交表單是沒(méi)有問(wèn)題的直接返回成功

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

但是我們F12將TOKEN值刪除再提交呢?

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

可以看到會(huì)直接截?cái)?/p>

WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么

web防御中的代碼安全:

感謝你的閱讀,相信你對(duì)“WEB開(kāi)發(fā)中常見(jiàn)漏洞防御方法是什么”這一問(wèn)題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注億速云網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)?lái)更好的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI