正則表達式(regex)或操作符”|“使用易出現(xiàn)功能Bug
接上一篇:正則表達式(regex)錯誤使用導致功能漏洞 ,我們繼續(xù)梳理,正則表達式錯誤使用,導致功能設計漏洞(bug),做web方面,需要掌握的知識很多,網(wǎng)站開發(fā)這項工作,在國內(nèi)也就10多年,很多開發(fā)人員,都是通過:培訓(自學) ->模仿->做項目 ,這樣一個過程。很多就是修修改改后,就成為了web開發(fā)工程師。這行入門低,很容易上手。但是想成為大師級的,還是很不容易。需要學習,掌握的知識幾十門。而對于剛剛?cè)腴T同人,很多時候因為缺乏系統(tǒng)學習,理論支持。導致提升有些心有余而力不足啦!因此,出現(xiàn)這些或多或少的功能設計漏洞,是很常見的!
好了,有些跑題了,在做代碼走查時候,這類漏洞也是時常出現(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"
}
}
*/
查找所有頁面出現(xiàn)abc或者bcd開頭,后面緊跟數(shù)字字符串。通過上面,我們看,正確匹配到bcd123,如果我們輸入:$user = “abc123張三”, 發(fā)現(xiàn)不能匹配到了。原因是”|”字符,優(yōu)先級最低,以上寫法會變成:匹配abc 或者是bcd\d+ 字符串。

以上圖,將|,包含到()中。
如果要提升優(yōu)先級,可以(abc|bcd)\d+ ,匹配所有abc或者bcd 字符串,并且后面緊跟數(shù)字的。在使用”|”字符串,注意它的優(yōu)先級級別低,如果要優(yōu)先匹配,可以放入()中。
相關文章
正則去除中括號(符號)及里面包含的內(nèi)容(最新推薦)
這篇文章主要介紹了正則去除中括號(符號)及里面包含的內(nèi)容,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01
正則表達式實現(xiàn)將MM/DD/YYYY格式的日期轉(zhuǎn)換為YYYY-MM-DD格式
這篇文章主要介紹了正則表達式實現(xiàn)將MM/DD/YYYY格式的日期轉(zhuǎn)換為YYYY-MM-DD格式的方法,是一個比較簡單實用的正則替換應用,對于怎能則表達式的學習具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12

