php is_numberic函數(shù)造成的SQL注入漏洞
一、is_numberic函數(shù)簡(jiǎn)介
國(guó)內(nèi)一部分CMS程序里面有用到過(guò)is_numberic函數(shù),我們先看看這個(gè)函數(shù)的結(jié)構(gòu)
bool is_numeric (mixed $var)
如果 var 是數(shù)字和數(shù)字字符串則返回 TRUE,否則返回 FALSE。
二、函數(shù)是否安全
接下來(lái)我們來(lái)看個(gè)例子,說(shuō)明這個(gè)函數(shù)是否安全。
$sql="insert into test(type)values($s);"; //是 values($s) 不是values('$s')
mysql_query($sql);
上面這個(gè)片段程序是判斷參數(shù)s是否為數(shù)字,是則返回?cái)?shù)字,不是則返回0,然后帶入數(shù)據(jù)庫(kù)查詢。(這樣就構(gòu)造不了sql語(yǔ)句)
我們把‘1 or 1' 轉(zhuǎn)換為16進(jìn)制 0x31206f722031 為s參數(shù)的值
程序運(yùn)行后,我們查詢數(shù)據(jù)庫(kù)看看,如下圖:

如果再重新查詢這個(gè)表的字段出來(lái),不做過(guò)濾帶入另一個(gè)SQL語(yǔ)句,將會(huì)造成2次注入.
三、 總結(jié)
盡量不要使用這函數(shù),如果要使用這個(gè)函數(shù),建議使用規(guī)范的sql語(yǔ)句,條件加入單引號(hào),這樣16進(jìn)制0x31206f722031就會(huì)在數(shù)據(jù)庫(kù)里顯示出來(lái)。而不會(huì)出現(xiàn)1 or 1。
- PHPCMS2008廣告模板SQL注入漏洞修復(fù)
- Discuz7.2版的faq.php SQL注入漏洞分析
- 對(duì)于ThinkPHP框架早期版本的一個(gè)SQL注入漏洞詳細(xì)分析
- php中sql注入漏洞示例 sql注入漏洞修復(fù)
- 在Global.asax文件里實(shí)現(xiàn)通用防SQL注入漏洞程序(適應(yīng)于post/get請(qǐng)求)
- PHP代碼網(wǎng)站如何防范SQL注入漏洞攻擊建議分享
- 利用SQL注入漏洞拖庫(kù)的方法
- 利用SQL注入漏洞登錄后臺(tái)的實(shí)現(xiàn)方法
- SQL注入漏洞過(guò)程實(shí)例及解決方案
相關(guān)文章
JavaScript 學(xué)習(xí)小結(jié)(適合新手參考)
JavaScript常量又稱字面常量,是固化在程序代碼中的信息。變量的主要作用是存取數(shù)據(jù),提供一個(gè)存取信息的容器。2009-07-07
JavaScript數(shù)組去重的3種方法和代碼實(shí)例
這篇文章主要介紹了JavaScript數(shù)組去重的3種方法和代碼實(shí)例,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-07-07
openlayers實(shí)現(xiàn)圖標(biāo)拖動(dòng)獲取坐標(biāo)
這篇文章主要為大家詳細(xì)介紹了openlayers實(shí)現(xiàn)圖標(biāo)拖動(dòng)獲取坐標(biāo),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
小程序canvas實(shí)現(xiàn)畫(huà)布半圓環(huán)
這篇文章主要為大家詳細(xì)介紹了小程序canvas實(shí)現(xiàn)畫(huà)布半圓環(huán),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
UEditor 自定義圖片視頻尺寸校驗(yàn)功能的實(shí)現(xiàn)代碼
UEditor支持單圖、多圖以及視頻上傳,編輯器配置項(xiàng)支持文件格式、文件大小校驗(yàn),對(duì)于文件寬高尺寸校驗(yàn)暫不支持。本文給大家介紹UEditor 自定義圖片視頻尺寸校驗(yàn)功能的實(shí)現(xiàn)代碼,感興趣的朋友一起看看吧2020-10-10

