phphtml過濾(php過濾html標(biāo)簽)
str=preg_replacequotvbscriptsiquot,quotVbscriptquot,$str 過濾script標(biāo)簽 str=preg_replacequotonaz+\s*=siquot,quotOn1=quot,$str 過濾script標(biāo)簽 str=preg_replacequot#siquot,quot#quot,$str 過濾script標(biāo)簽,如javAsCriptalert清除空格,換行 function DeleteHtml$str st。
我給樓主吧 首先是過濾html,將html編碼轉(zhuǎn)換為實(shí)體編碼 將特殊字符轉(zhuǎn)成 HTML 格式param string $value 字符串或者數(shù)組 return array public static function htmlspecialchars$value return is_array$value ? array_map#39khtmlspecialchars#39, $value preg_replace#39。
你可以看下這個(gè)函數(shù)是不是符合你的要求 strip_tags這個(gè)函數(shù)的作用是去除字符串中的html標(biāo)簽, 只留下內(nèi)容。
可以使用strip_tags函數(shù) lt?php rr = strip_tags$str,#39ltimgltaltpltbr#39echo $rr。
首先可以先過濾下post過來的值 如果不用用考慮安全問題就不必過濾了 下面是不考慮過濾的情況 ifisset$_POST#39submit#39 sel=$_POST#39sel#39?$_POST#39sel#39#39xsz#39username=$_POST#39username#39bianhao=$_POST#39bianhao#39下面開始查詢 require#39configphp 加載數(shù)據(jù)庫。
應(yīng)該是你的數(shù)據(jù)在插入到數(shù)據(jù)庫前或者是數(shù)據(jù)被讀出來之后,被函數(shù)“htmlspecialchars”把“l(fā)t”這兩個(gè)標(biāo)記給轉(zhuǎn)換成html代碼即“l(fā)t”解決辦法是,你在網(wǎng)站的程序那修改,就是要先看一下,是在哪個(gè)地方把數(shù)據(jù)轉(zhuǎn)換掉的,那在那里把那個(gè)函數(shù)去掉就行了,像你這種情況的話應(yīng)該是在插入數(shù)據(jù)之前就已經(jīng)被轉(zhuǎn)換。
lt?php$Html = @file_get_contents#395html#39$Html = preg_replace#39\s2,\ni#39, #39#39, $Html 過濾掉換行和2個(gè)以上的空格preg_match_all#39ltimg\s+^*src\s?=\s?\#39quot^\#39quot*\#39quoti#39, $Html, $Imageprint_r$Image圖片,通常情況下,無論。
all#39ltli*?lt\li#39, $htmlStr , $res$ret = preg_replace#39ltlilt\li#39, #39#39, $res00輸出resvar_dump$res echo $ret最終輸出的結(jié)果為首頁在這個(gè)例子上題主所需要的值基本都可以用正則算法過濾出來 希望能幫到題主 如果可以,還請(qǐng)采納。
一般css代碼都保存在標(biāo)簽ltstyleltstyle之間,那么正則表達(dá)式如下pa = #39%ltstyle*?ltstyle%si#39下面的正則表達(dá)式,是匹配html中所有標(biāo)簽的,你可以進(jìn)行替換,最終得到html的文本內(nèi)容#39%ltstylescript^lt**?lt\1lt?azaz09*^lt*lt!*?%si#39。
XSS工具比SQL注入更加難以防護(hù),各大公司網(wǎng)站都被XSS攻擊過,雖然這種攻擊與php語言無關(guān),但可以使用php來篩選用戶數(shù)據(jù)達(dá)到保護(hù)用戶數(shù)據(jù)的目的,這里主要使用的是對(duì)用戶的數(shù)據(jù)進(jìn)行過濾,一般過濾掉HTML標(biāo)簽,特別是a標(biāo)簽下面是一個(gè)普通的過濾方法 function transform_HTML $string , $length null Helps prevent。
你寫注冊(cè)頁面,如果要在這個(gè)頁面驗(yàn)證并彈出提示框就要用到j(luò)s,也可以提交給一個(gè)php頁面處理,post到一個(gè)php文件,對(duì)注冊(cè)信息進(jìn)行過濾,符合就添加不符合繼續(xù)注冊(cè),信息符合后就連接數(shù)據(jù)庫,插入這條數(shù)據(jù)登錄的時(shí)候?qū)嶋H上是做一個(gè)查詢,看數(shù)據(jù)表中有沒有你登錄輸入的數(shù)據(jù),有就登錄成功,沒有就跳到登錄。
lt?php$str = quotA #39quote#39 is ltbboldltbquot Outputs A #39quote#39 is ltbboldltbecho htmlentities$str Outputs A #039quote#039 is ltbboldltbecho htmlentities$str, ENT_QUOTES有啥作用一般是過濾用戶輸入 參考資料。
function xmlentities $string, $quote_style = ENT_QUOTES static $trans remove all html entities before xml encoding must convert all quotes to avoid remaining html entity in code $string = html_entity_decode$string, ENT_QUOTES xml encoding。
這個(gè)問題很簡(jiǎn)單啊因?yàn)槟阃鶖?shù)據(jù)庫存儲(chǔ)的時(shí)候,存儲(chǔ)的就是ltbr,當(dāng)你讀出來的時(shí)候,是一個(gè)字符串,或者數(shù)組,這時(shí)候不會(huì)自動(dòng)轉(zhuǎn)移成php中的換行,就像你寫聲明一個(gè)字符串,例如$string = #39ltbr#39這時(shí)候字符串$string肯定不會(huì)是換行重點(diǎn)是html語言是瀏覽器解析,不是PHP解析。
使用php嵌套ifesle實(shí)現(xiàn),下面是一個(gè)例子,看懂就能解決你的問題了 lt?php a = $_GET#39a#39這里獲取一個(gè)get值,改成你的獲取session echo $aif$a 0 判斷有session ? ltdiv id=quotaquota大于0ltdiv lt!有session輸出這段 lt?php else 判斷無session 。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。