《PHP應(yīng)用:PHP防止注入攻擊實例分析》要點:
本文介紹了PHP應(yīng)用:PHP防止注入攻擊實例分析,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP實例本文以實例形式詳細(xì)分析了PHP防止注入攻擊的辦法.分享給大家供大家參考.具體分析如下:
PHP實例PHP addslashes() 函數(shù)--單撇號加斜線轉(zhuǎn)義
PHP實例PHP String 函數(shù)
PHP實例定義和用法
PHP實例addslashes() 函數(shù)在指定的預(yù)定義字符前添加反斜杠.
這些預(yù)定義字符是:
?單引號 (')
?雙引號 (")
?反斜杠 (\)
?NULL
語法:
PHP實例addslashes(string)
參數(shù) | ?描述 |
string | 必需.規(guī)定要檢查的字符串. |
PHP實例提示和注釋
PHP實例提示:該函數(shù)可用于為存儲在數(shù)據(jù)庫中的字符串以及數(shù)據(jù)庫查詢語句準(zhǔn)備合適的字符串.
注釋:默認(rèn)情況下,PHP 指令 magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE 數(shù)據(jù)自動運(yùn)行 addslashes().不要對已經(jīng)被 magic_quotes_gpc 轉(zhuǎn)義過的字符串使用 addslashes(),因為這樣會導(dǎo)致雙層轉(zhuǎn)義.遇到這種情況時可以使用函數(shù) get_magic_quotes_gpc() 進(jìn)行檢測.
PHP實例例子
在本例中,我們要向字符串中的預(yù)定義字符添加反斜杠:
PHP實例get_magic_quotes_gpc函數(shù)
PHP實例get_magic_quotes_gpc:
取得 PHP 環(huán)境變數(shù) magic_quotes_gpc 的值.
語法: long get_magic_quotes_gpc(void);
傳回值: 長整數(shù)
函式種類: PHP 系統(tǒng)功能
PHP實例內(nèi)容說明:
?
本函式取得 PHP 環(huán)境設(shè)定的變數(shù) magic_quotes_gpc (GPC, Get/Post/Cookie) 值.傳回 0 表示關(guān)閉本功能;傳回 1 表示本功能開啟.當(dāng) magic_quotes_gpc 開啟時,所有的 ' (單引號), " (雙引號), \ (反斜線) and 空字符會自動轉(zhuǎn)為含有反斜線的溢出字符.
PHP實例addslashes -- 使用反斜線引用字符串
PHP實例描述:
PHP實例string addslashes ( string str)
返回字符串,該字符串為了數(shù)據(jù)庫查詢語句等的需要在某些字符前加上了反斜線.這些字符是單引號(')、雙引號(")、反斜線(\)與 NUL(NULL 字符).
PHP實例一個使用 addslashes() 的例子是當(dāng)你要往數(shù)據(jù)庫中輸入數(shù)據(jù)時.例如,將名字 O'reilly 插入到數(shù)據(jù)庫中,這就需要對其進(jìn)行轉(zhuǎn)義.大多數(shù)據(jù)庫使用 \ 作為轉(zhuǎn)義符:O\'reilly.這樣可以將數(shù)據(jù)放入數(shù)據(jù)庫中,而不會插入額外的 \.當(dāng) PHP 指令 magic_quotes_sybase 被設(shè)置成 on 時,意味著插入 ' 時將使用 ' 進(jìn)行轉(zhuǎn)義.
PHP實例默認(rèn)情況下,PHP 指令 magic_quotes_gpc 為 on,它主要是對所有的 GET、POST 和 COOKIE 數(shù)據(jù)自動運(yùn)行 addslashes().不要對已經(jīng)被 magic_quotes_gpc 轉(zhuǎn)義過的字符串使用 addslashes(),因為這樣會導(dǎo)致雙層轉(zhuǎn)義.遇到這種情況時可以使用函數(shù) get_magic_quotes_gpc() 進(jìn)行檢測.
PHP實例例子 1. addslashes() 示例
PHP實例對于 php.ini 中的 magic_quotes_gpc,是設(shè)置為 off 還是為 on 呢?
PHP實例個人觀點,應(yīng)該設(shè)置為 on
PHP實例總結(jié)如下:
PHP實例1. 對于magic_quotes_gpc=on的情況,
PHP實例我們可以不對輸入和輸出數(shù)據(jù)庫的字符串?dāng)?shù)據(jù)作
addslashes()和stripslashes()的操作,數(shù)據(jù)也會正常顯示.
PHP實例如果此時你對輸入的數(shù)據(jù)作了addslashes()處理,
那么在輸出的時候就必須使用stripslashes()去掉多余的反斜杠.
PHP實例2. 對于magic_quotes_gpc=off 的情況
PHP實例必須使用addslashes()對輸入數(shù)據(jù)進(jìn)行處理,但并不需要使用stripslashes()格式化輸出
因為addslashes()并未將反斜杠一起寫入數(shù)據(jù)庫,只是贊助mysql完成了sql語句的執(zhí)行.
PHP實例補(bǔ)充:
PHP實例magic_quotes_gpc 作用范圍是:WEB客戶服務(wù)端;作用時間:哀求開始時,例如當(dāng)腳本運(yùn)行時.
magic_quotes_runtime 作用范圍:從文件中讀取的數(shù)據(jù)或執(zhí)行exec()的結(jié)果或是從SQL查詢中得到的;作用時間:每次當(dāng)腳本訪問運(yùn)行狀態(tài)中產(chǎn)生的數(shù)據(jù)
?
代碼:
PHP實例希望本文所述對大家的PHP程序設(shè)計有所贊助.
《PHP應(yīng)用:PHP防止注入攻擊實例分析》是否對您有啟發(fā),歡迎查看更多與《PHP應(yīng)用:PHP防止注入攻擊實例分析》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14250.html