欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

劣質(zhì)的PHP代碼簡化

 更新時(shí)間:2010年02月08日 08:51:05   作者:  
下面這一小段“劣質(zhì)”的PHP代碼是一道簡化了的測試題。這種問題就像在問:你該怎樣優(yōu)化這段代碼?
復(fù)制代碼 代碼如下:

<?
echo("<p>search results for query:").
$_GET['query'].".</p>";
?>

這段代碼的主要問題在于它把用戶提交的數(shù)據(jù)直接顯示到了網(wǎng)頁上,從而產(chǎn)生XSS漏洞。其實(shí)有很多方法可以填補(bǔ)這個(gè)漏洞。那么,什么代碼是我們想要的呢?
復(fù)制代碼 代碼如下:

<?
echo("<p>search results for query:").
htmlspecialchars($_GET['query']).".</p>";
?>


這是最低要求。XSS漏洞用htmlspecialchars函數(shù)填補(bǔ)了,從而屏蔽了非法字符。
復(fù)制代碼 代碼如下:

<?php
if(isset($_GET['query']))
echo'<p>search results for query:',
htmlspecialchars($_GET['query'],ENT_QUOTES).'.</p>';
?>

能寫出這樣代碼的人應(yīng)該是我想要錄用的人了:
*<?被替換成了<?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í)慣

相關(guān)文章

  • PHP laravel緩存cache機(jī)制詳解

    PHP laravel緩存cache機(jī)制詳解

    Laravel中的cache為我們提供了三種緩存機(jī)制:Redis,memcache,以及框架的文件緩存。本文主要和大家聊聊cache中的文件緩存,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • 分析五個(gè)Laravel Dusk的使用技巧

    分析五個(gè)Laravel Dusk的使用技巧

    Laravel Dusk是 Laravel 的一個(gè)表達(dá)性強(qiáng)、易于使用,且功能強(qiáng)大的瀏覽器自動(dòng)化測試工具。通過 Dusk 可以以編程的方式測試 JavaScript 驅(qū)動(dòng)的應(yīng)用程序。在使用 Dusk 編寫測試案例時(shí),我經(jīng)常遇到一些限制?,F(xiàn)在我在本文中將這些情況以及如何克服分享給大家。
    2021-05-05
  • php實(shí)現(xiàn)用戶注冊密碼的crypt加密

    php實(shí)現(xiàn)用戶注冊密碼的crypt加密

    這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)用戶注冊密碼的crypt加密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 解決ajax+php中文亂碼的方法詳解

    解決ajax+php中文亂碼的方法詳解

    本篇文章是對ajax+php中文亂碼的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP實(shí)現(xiàn)動(dòng)態(tài)表單生成工具詳解

    PHP實(shí)現(xiàn)動(dòng)態(tài)表單生成工具詳解

    表單包含多種input類型,包括 hiiden類型 ,text類型,radio類型等。但手寫表單累,耗時(shí)耗力,開發(fā)銷量太低且代碼量大了還容易寫出bug,所以本文將用PHP編寫動(dòng)態(tài)表單生成工具,需要的可以參考一下
    2022-03-03
  • PHP獲取服務(wù)器端信息的方法

    PHP獲取服務(wù)器端信息的方法

    這篇文章主要介紹了PHP獲取服務(wù)器端信息的方法,通過一個(gè)自定義函數(shù)實(shí)現(xiàn)對服務(wù)器端系統(tǒng)版本、PHP版本、Apache版本等信息的獲取,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • 在PHP中使用與Perl兼容的正則表達(dá)式

    在PHP中使用與Perl兼容的正則表達(dá)式

    在PHP中使用與Perl兼容的正則表達(dá)式...
    2006-11-11
  • php魔術(shù)方法功能與用法實(shí)例分析

    php魔術(shù)方法功能與用法實(shí)例分析

    這篇文章主要介紹了php魔術(shù)方法功能與用法,結(jié)合實(shí)例形式簡單分析了php面向?qū)ο蟪绦蛟O(shè)計(jì)中常見魔術(shù)方法的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2016-10-10
  • 使用PHP求兩個(gè)文件的相對路徑

    使用PHP求兩個(gè)文件的相對路徑

    本篇文章是對使用PHP求兩個(gè)文件的相對路徑進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php+jQuery+Ajax實(shí)現(xiàn)點(diǎn)贊效果的方法(附源碼下載)

    php+jQuery+Ajax實(shí)現(xiàn)點(diǎn)贊效果的方法(附源碼下載)

    這篇文章主要介紹了php+jQuery+Ajax實(shí)現(xiàn)點(diǎn)贊效果的方法,結(jié)合實(shí)例形式詳細(xì)介紹了php結(jié)合jQuery的ajax無刷新提交實(shí)現(xiàn)點(diǎn)贊功能的具體步驟與相關(guān)技巧,需要的朋友可以參考下
    2015-12-12

最新評論