国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

PHP安全-輸出轉義

瀏覽:76日期:2022-09-12 09:58:44
輸出轉義

另外一個Web應用安全的基礎是對輸出進行轉義或對特殊字符進行編碼,以保證原意不變。例如,O’Reilly在傳送給MySQL數據庫前需要轉義成O’Reilly。單引號前的反斜杠代表單引號是數據本身的一部分,而不是并不是它的本義。

我所指的輸出轉義具體分為三步:

l識別輸出

l輸出轉義

l區分已轉義與未轉義數據

只對已過濾數據進行轉義是很有必要的。盡管轉義能防止很多常見安全漏洞,但它不能替代輸入過濾。被污染數據必須首先過濾然后轉義。

在對輸出進行轉義時,你必須先識別輸出。通常,這要比識別輸入簡單得多,因為它依賴于你所進行的動作。例如,識別到客戶端的輸出時,你可以在代碼中查找下列語句:

echo

print

printf

<?=

作為一項應用的開發者,你必須知道每一個向外部系統輸出的地方。它們構成了輸出。

象過濾一樣,轉義過程在依情形的不同而不同。過濾對于不同類型的數據處理方法也是不同的,轉義也是根據你傳輸信息到不同的系統而采用不同的方法。

對于一些常見的輸出目標(包括客戶端、數據庫和URL)的轉義,PHP中有內置函數可用。如果你要寫一個自己算法,做到萬無一失很重要。需要找到在外系統中特殊字符的可靠和完整的列表,以及它們的表示方式,這樣數據是被保留下來而不是轉譯了。

最常見的輸出目標是客戶機,使用htmlentities( )在數據發出前進行轉義是最好的方法。與其它字符串函數一樣,它輸入是一個字符串,對其進行加工后進行輸出。但是使用htmlentities( )函數的最佳方式是指定它的兩個可選參數:引號的轉義方式(第二參數)及字符集(第三參數)。引號的轉義方式應該指定為ENT_QUOTES,它的目的是同時轉義單引號和雙引號,這樣做是最徹底的,字符集參數必須與該頁面所使用的字符集相必配。

為了區分數據是否已轉義,我還是建議定義一個命名機制。對于輸出到客戶機的轉義數據,我使用$html數組進行存儲,該數據首先初始化成一個空數組,對所有已過濾和已轉義數據進行保存。

CODE:

<?php

$html = array( );

$html[’username’] = htmlentities($clean[’username’], ENT_QUOTES, ’UTF-8’);

echo '<p>Welcome back, {$html[’username’]}.</p>';

?>

小提示

htmlspecialchars( )函數與htmlentities( )函數基本相同,它們的參數定義完全相同,只不過是htmlentities( )的轉義更為徹底。

通過$html[’username’]把username輸出到客戶端,你就可以確保其中的特殊字符不會被瀏覽器所錯誤解釋。如果username只包含字母和數字的話,實際上轉義是沒有必要的,但是這體現了深度防范的原則。轉義任何的輸出是一個非常好的習慣,它可以戲劇性地提高你的軟件的安全性。

另外一個常見的輸出目標是數據庫。如果可能的話,你需要對SQL語句中的數據使用PHP內建函數進行轉義。對于MySQL用戶,最好的轉義函數是mysql_real_escape_string( )。如果你使用的數據庫沒有PHP內建轉義函數可用的話,addslashes( )是最后的選擇。

下面的例子說明了對于MySQL數據庫的正確的轉義技巧:

CODE:

<?php

$mysql = array( );

$mysql[’username’] = mysql_real_escape_string($clean[’username’]);

$sql = 'SELECT *

FROM profile

WHERE username = ’{$mysql[’username’]}’';

$result = mysql_query($sql);

?>

標簽: PHP
相關文章:
主站蜘蛛池模板: 亚洲成人一级 | 午夜性刺激免费视频观看不卡专区 | 久久r视频 | 久久青草国产手机看片福利盒子 | 好妞操 | 黄色wwwcom| 一本色道久久爱 | 久久九九精品一区二区 | 欧美在线视频一区二区 | 在线播放人成午夜免费视频 | 麻豆国产| 18videosex性欧美69超高清 | 欧美日韩美女 | 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 欧美最新的精品videoss | 国产短裙黑色丝袜在线观看下 | 亚洲欧美激情精品一区二区 | 中国国产一国产一级毛片视频 | 91大神大战丝袜美女在线观看 | 就草草在线观看视频 | 黄页网站18以下禁止观看 | 欧美日韩永久久一区二区三区 | 亚洲精彩视频在线观看 | 91久久香蕉青青草原娱乐 | 欧美肥婆videoxxx | 波多野结衣一区二区三区在线观看 | 日韩美女网站在线看 | 99在线视频免费观看 | 国产成人毛片视频不卡在线 | 玖草在线 | 成人三级在线视频 | 国产三级精品91三级在专区 | 亚洲综合色就色手机在线观看 | 在线观看aaa | 欧美精品久久久亚洲 | 91热久久免费频精品黑人99 | 国产裸体美女视频全黄 | 成人毛片免费视频 | 日韩一区二区精品久久高清 | 九九九精品视频免费 | 欧美日韩在线视频不卡一区二区三区 |