您好,登錄后才能下訂單哦!
這篇文章主要介紹了PHP代碼優(yōu)化的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一小段“劣質(zhì)”的PHP代碼優(yōu)化的過(guò)程,請(qǐng)仔細(xì)體會(huì)優(yōu)化過(guò)程
下面這一小段“劣質(zhì)”的PHP代碼是一道簡(jiǎn)化了的測(cè)試題。這種問(wèn)題就像在問(wèn):你該怎樣優(yōu)化這段代碼?
<? echo("<p>Search results for query: " . $_GET['query'] . ".</p>"); ?>
這段代碼的主要問(wèn)題在于它把用戶提交的數(shù)據(jù)直接顯示到了網(wǎng)頁(yè)上,從而產(chǎn)生XSS漏洞。其實(shí)有很多方法可以填補(bǔ)這個(gè)漏洞。那么,什么代碼是我們想要的呢?
<? echo("<p>Search results for query: " . htmlspecialchars($_GET['query']) . ".</p>"); ?>
這是最低要求。XSS漏洞用htmlspecialchars函數(shù)填補(bǔ)了,從而屏蔽了非法字符。
<?php if (isset($_GET['query'])) { echo '<p>Search results for query: ', htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>'; } ?>
接著優(yōu)化:
<?php if (isset($_GET['query'])) { echo '<p>Search results for query: ', htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>'; } ?>
<?被替換成了<?php,這樣更符合XML規(guī)范。
在輸出$_GET['query']的值之前先判斷它是否為空。
echo命令中多余的括號(hào)被去掉了。
字符串用單引號(hào)限定,從而節(jié)省了PHP從字符串中搜索可替換的變量的時(shí)間。
用逗號(hào)代替句號(hào),節(jié)省了echo的時(shí)間。
將ENT_QUOTES標(biāo)識(shí)傳遞給htmlspecialchars函數(shù),從而保證單引號(hào)也會(huì)被轉(zhuǎn)義。雖然這并是最主要的,但也算是一個(gè)良好習(xí)慣。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“PHP代碼優(yōu)化的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。