正則表達(dá)式(regex)或操作符”|“使用易出現(xiàn)功能Bug
接上一篇:正則表達(dá)式(regex)錯(cuò)誤使用導(dǎo)致功能漏洞 ,我們繼續(xù)梳理,正則表達(dá)式錯(cuò)誤使用,導(dǎo)致功能設(shè)計(jì)漏洞(bug),做web方面,需要掌握的知識(shí)很多,網(wǎng)站開發(fā)這項(xiàng)工作,在國(guó)內(nèi)也就10多年,很多開發(fā)人員,都是通過:培訓(xùn)(自學(xué)) ->模仿->做項(xiàng)目 ,這樣一個(gè)過程。很多就是修修改改后,就成為了web開發(fā)工程師。這行入門低,很容易上手。但是想成為大師級(jí)的,還是很不容易。需要學(xué)習(xí),掌握的知識(shí)幾十門。而對(duì)于剛剛?cè)腴T同人,很多時(shí)候因?yàn)槿狈ο到y(tǒng)學(xué)習(xí),理論支持。導(dǎo)致提升有些心有余而力不足啦!因此,出現(xiàn)這些或多或少的功能設(shè)計(jì)漏洞,是很常見的!
好了,有些跑題了,在做代碼走查時(shí)候,這類漏洞也是時(shí)常出現(xiàn)。我們看下,下面代碼:
<?php $user="bcd123張三"; ///匹配用戶名中出現(xiàn)abc還有bcd開頭,后面緊跟是數(shù)字字符 preg_match_all("/abc|bcd\d+/",$user,$match); var_dump($match); /*結(jié)果是 array(1) { [0]=> array(1) { [0]=> string(6) "bcd123" } } */
查找所有頁(yè)面出現(xiàn)abc或者bcd開頭,后面緊跟數(shù)字字符串。通過上面,我們看,正確匹配到bcd123,如果我們輸入:$user = “abc123張三”, 發(fā)現(xiàn)不能匹配到了。原因是”|”字符,優(yōu)先級(jí)最低,以上寫法會(huì)變成:匹配abc 或者是bcd\d+ 字符串。
以上圖,將|,包含到()中。
如果要提升優(yōu)先級(jí),可以(abc|bcd)\d+ ,匹配所有abc或者bcd 字符串,并且后面緊跟數(shù)字的。在使用”|”字符串,注意它的優(yōu)先級(jí)級(jí)別低,如果要優(yōu)先匹配,可以放入()中。
相關(guān)文章
使用正則表達(dá)式過濾 S3 上以 _$folder$ 結(jié)尾的占位文件的方法
當(dāng)我們使用命令行批量從 S3 上拷貝文件或統(tǒng)計(jì)文件數(shù)量時(shí),希望能排除掉 S3 上以 _$folder$ 結(jié)尾的占位文件,這個(gè)正則表達(dá)式應(yīng)該怎么寫呢,本文給大家介紹使用正則表達(dá)式過濾 S3 上以 _$folder$ 結(jié)尾的占位文件的方法,感興趣的朋友一起看看吧2023-12-12正則表達(dá)式匹配${key}并在Java中使用的詳細(xì)方法
這篇文章主要介紹了正則表達(dá)式匹配${key}并在Java中使用的詳細(xì)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03學(xué)習(xí)正則表達(dá)式30分鐘入門教程(第二版)
30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對(duì)它有一些基本的了解,讓你可以在自己的程序或網(wǎng)頁(yè)里使用它2007-03-03dw(dreamweaver)正則表達(dá)式函數(shù)列表
dw(dreamweaver)正則表達(dá)式函數(shù)列表,需要的朋友可以參考下。2007-12-12只能輸入正整數(shù)的正則表達(dá)式及常用的正則表達(dá)式
這篇文章主要介紹了只能輸入正整數(shù)的正則表達(dá)式以及常用的正則表達(dá)式,需要的朋友可以參考下2018-09-09