PHP下ereg實(shí)現(xiàn)匹配ip的正則
更新時(shí)間:2007年11月08日 22:04:54 作者:
我們先看個(gè)代碼片段:
$ip = "1.1.1.255".chr(0)."haha";
if(ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip)) {
echo $ip;
} else {
echo "unknown";
}
這個(gè)ereg正則限制了$ip的數(shù)據(jù)為xxx.xxx.xxx.xxx這樣的形式,表面上看上面的代碼應(yīng)該輸出"unknown",而實(shí)際卻輸出了"1.1.1.255haha",因?yàn)閑reg函數(shù)存在NULL截?cái)嗦┒?,?dǎo)致了正則過(guò)濾被繞過(guò)。4 \2 n+ Y6 |; Z7 O
6 e& b6 C5 F- W- F$ z我們?cè)诶脮r(shí)必須要引入\x00(%00),而在GPC為ON的情況下%00會(huì)被轉(zhuǎn)義導(dǎo)致無(wú)法利用。但是如果被ereg()處理的是$ _SERVER(在PHP5下可以繞過(guò)GPC)或是被urldecode這樣的函數(shù)處理導(dǎo)致GPC被繞過(guò)的數(shù)據(jù)呢?比如有些程序就用上面的方法驗(yàn)證$ _SERVER提交上來(lái)的IP,那么我們就可以利用NULL截?cái)嗬@過(guò)正則過(guò)濾來(lái)構(gòu)造我們需要的數(shù)據(jù)了:)
復(fù)制代碼 代碼如下:
$ip = "1.1.1.255".chr(0)."haha";
if(ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip)) {
echo $ip;
} else {
echo "unknown";
}
6 e& b6 C5 F- W- F$ z我們?cè)诶脮r(shí)必須要引入\x00(%00),而在GPC為ON的情況下%00會(huì)被轉(zhuǎn)義導(dǎo)致無(wú)法利用。但是如果被ereg()處理的是$ _SERVER(在PHP5下可以繞過(guò)GPC)或是被urldecode這樣的函數(shù)處理導(dǎo)致GPC被繞過(guò)的數(shù)據(jù)呢?比如有些程序就用上面的方法驗(yàn)證$ _SERVER提交上來(lái)的IP,那么我們就可以利用NULL截?cái)嗬@過(guò)正則過(guò)濾來(lái)構(gòu)造我們需要的數(shù)據(jù)了:)
您可能感興趣的文章:
- php中有關(guān)字符串的4個(gè)函數(shù)substr、strrchr、strstr、ereg介紹和使用例子
- ThinkPHP實(shí)現(xiàn)帶驗(yàn)證碼的文件上傳功能實(shí)例
- PHP 基于文件頭的文件類型驗(yàn)證類函數(shù)
- 一個(gè)經(jīng)典的PHP驗(yàn)證碼類分享
- php驗(yàn)證session無(wú)效的解決方法
- php實(shí)現(xiàn)的click captcha點(diǎn)擊驗(yàn)證碼類實(shí)例
- php實(shí)現(xiàn)的Captcha驗(yàn)證碼類實(shí)例
- PHP使用GIFEncoder類生成的GIF動(dòng)態(tài)圖片驗(yàn)證碼
- php使用ereg驗(yàn)證文件上傳的方法
相關(guān)文章
半小時(shí)精通正則表達(dá)式 經(jīng)典實(shí)例介紹
想必很多人都對(duì)正則表達(dá)式都頭疼.今天,我以我的認(rèn)識(shí),加上網(wǎng)上一些文章,希望用常人都可以理解的表達(dá)方式.來(lái)和大家分享學(xué)習(xí)經(jīng)驗(yàn)2012-09-09
15個(gè)常用的javaScript正則表達(dá)式(收藏)
本文是小編收集整理的15個(gè)常用的javascript正則表達(dá)式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-05-05
正則表達(dá)式驗(yàn)證IPV4地址功能實(shí)例分析
這篇文章主要介紹了正則表達(dá)式驗(yàn)證IPV4地址功能,結(jié)合實(shí)例形式分析了IPV4地址驗(yàn)證的原理及具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-01-01
55分鐘學(xué)會(huì)正則表達(dá)式(來(lái)自Github)
正則表達(dá)式是一種查找以及字符串替換操作。正則表達(dá)式在文本編輯器中廣泛使用,比如正則表達(dá)式被用于文本的一些操作,這里雖然說(shuō)時(shí)間有點(diǎn)短,但經(jīng)過(guò)一段時(shí)期的聯(lián)系,每次正則可能功能更全,代碼量也更好,考慮的也會(huì)更周全2020-04-04
用正則表達(dá)式來(lái)判斷素?cái)?shù)的代碼
下面這段Python代碼演示了一個(gè)用正則表達(dá)式來(lái)判斷素?cái)?shù)的方法2009-09-09
Javascript正則表達(dá)式測(cè)試網(wǎng)頁(yè)
Javascript正則表達(dá)式測(cè)試網(wǎng)頁(yè)...2006-06-06
Hive中常用正則表達(dá)式的運(yùn)用小結(jié)
在實(shí)際的應(yīng)用中,通常需要在一些復(fù)雜的、沒(méi)有規(guī)律的字符串中提取數(shù)據(jù),這時(shí)候就需要用到正則表達(dá)式了,這次講一下hive的正則表達(dá)式,感興趣的朋友跟隨小編一起看看吧2022-08-08
js正則表達(dá)式之input屬性($_)RegExp對(duì)象屬性介紹
該屬性為RegExp的靜態(tài)只讀屬性,該屬性的值為與RegExp對(duì)象所描述的正則表達(dá)式進(jìn)行匹配檢測(cè)的字符串,該屬性也可以表示成$_2012-10-10

