亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP防止注入攻擊實例分析

2024-05-04 23:26:44
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP防止注入攻擊的具體方法,實例分析了相關的字符串函數與特殊字符處理,需要的朋友可以參考下
 
 

本文以實例形式詳細分析了PHP防止注入攻擊的方法。分享給大家供大家參考。具體分析如下:

PHP addslashes() 函數--單撇號加斜線轉義

PHP String 函數

定義和用法

addslashes() 函數在指定的預定義字符前添加反斜杠。
這些預定義字符是:
 單引號 (')
 雙引號 (")
 反斜杠 (/)
 NULL
語法:

addslashes(string)

參數  描述
string 必需。規定要檢查的字符串。

提示和注釋

提示:該函數可用于為存儲在數據庫中的字符串以及數據庫查詢語句準備合適的字符串。
注釋:默認情況下,PHP 指令 magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE 數據自動運行 addslashes()。不要對已經被 magic_quotes_gpc 轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。

例子

在本例中,我們要向字符串中的預定義字符添加反斜杠:

復制代碼代碼如下:
<?php
$str = "Who's John Adams?";
echo $str . " This is not safe in a database query.<br />";
echo addslashes($str) . " This is safe in a database query.";
?>

輸出:
Who's John Adams? This is not safe in a database query.
Who/'s John Adams? This is safe in a database query.

 

get_magic_quotes_gpc函數

 

復制代碼代碼如下:
function html($str)
{
     $str = get_magic_quotes_gpc()?$str:addslashes($str);
     return $str;
}

 

get_magic_quotes_gpc:
取得 PHP 環境變數 magic_quotes_gpc 的值。
語法: long get_magic_quotes_gpc(void);
傳回值: 長整數
函式種類: PHP 系統功能

內容說明:
 
本函式取得 PHP 環境設定的變數 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。傳回 0 表示關閉本功能;傳回 1 表示本功能開啟。當 magic_quotes_gpc 開啟時,所有的 ' (單引號), " (雙引號), / (反斜線) and 空字符會自動轉為含有反斜線的溢出字符。

addslashes -- 使用反斜線引用字符串

描述:

string addslashes ( string str)
返回字符串,該字符串為了數據庫查詢語句等的需要在某些字符前加上了反斜線。這些字符是單引號(')、雙引號(")、反斜線(/)與 NUL(NULL 字符)。

一個使用 addslashes() 的例子是當你要往數據庫中輸入數據時。例如,將名字 O'reilly 插入到數據庫中,這就需要對其進行轉義。大多數據庫使用 / 作為轉義符:O/'reilly。這樣可以將數據放入數據庫中,而不會插入額外的 /。當 PHP 指令 magic_quotes_sybase 被設置成 on 時,意味著插入 ' 時將使用 ' 進行轉義。

默認情況下,PHP 指令 magic_quotes_gpc 為 on,它主要是對所有的 GET、POST 和 COOKIE 數據自動運行 addslashes()。不要對已經被 magic_quotes_gpc 轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。

例子 1. addslashes() 示例

復制代碼代碼如下:
$str = "Is your name O'reilly?";
// 輸出:Is your name O/'reilly?
echo addslashes($str);
?>
get_magic_quotes_gpc()

本函數取得 PHP 環境配置的變量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示關閉本功能;返回 1 表示本功能打開。當 magic_quotes_gpc 打開時,所有的 ' (單引號), " (雙引號), / (反斜線) and 空字符會自動轉為含有反斜線的溢出字符。
 
magic_quotes_gpc

 

對于 php.ini 中的 magic_quotes_gpc,是設置為 off 還是為 on 呢?

個人觀點,應該設置為 on

總結如下:

1. 對于magic_quotes_gpc=on的情況,

我們可以不對輸入和輸出數據庫的字符串數據作
addslashes()和stripslashes()的操作,數據也會正常顯示。

如果此時你對輸入的數據作了addslashes()處理,
那么在輸出的時候就必須使用stripslashes()去掉多余的反斜杠。

2. 對于magic_quotes_gpc=off 的情況

必須使用addslashes()對輸入數據進行處理,但并不需要使用stripslashes()格式化輸出
因為addslashes()并未將反斜杠一起寫入數據庫,只是幫助mysql完成了sql語句的執行。

補充:

magic_quotes_gpc 作用范圍是:WEB客戶服務端;作用時間:請求開始時,例如當腳本運行時.
magic_quotes_runtime 作用范圍:從文件中讀取的數據或執行exec()的結果或是從SQL查詢中得到的;作用時間:每次當腳本訪問運行狀態中產生的數據
 
代碼:

 

復制代碼代碼如下:
<?php  
/* 
有時表單提交的變量不止一個,可能有十幾個,幾十個。那么一次一次地復制/粘帖addslashes(),是否麻煩了一點?由于從表單或URL獲取的數據都是以數組形式出現的,如$_POST、$_GET)那就自定義一個可以“橫掃千軍”的函數 
*/  
function quotes($content)  
{  
//如果magic_quotes_gpc=Off,那么就開始處理  
if (!get_magic_quotes_gpc()) {  
//判斷$content是否為數組  
if (is_array($content)) {  
//如果$content是數組,那么就處理它的每一個單無  
foreach ($content as $key=>$value) {  
$content[$key] = addslashes($value);  
}  
} else {  
//如果$content不是數組,那么就僅處理一次  
addslashes($content);  
}  
} else {  
//如果magic_quotes_gpc=On,那么就不處理  
}  
//返回$content  
return $content;  
}  
?>

 

希望本文所述對大家的PHP程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91夜夜揉人人捏人人添红杏| 国产精品视频永久免费播放| 日韩一区二区福利| 欧美精品一区在线播放| 国产在线视频2019最新视频| 久久精品99国产精品酒店日本| 欧美国产日韩视频| 国产精品第一页在线| 国产精品免费福利| 欧美裸体xxxx极品少妇软件| 亚洲欧美三级在线| 成人做爽爽免费视频| 91亚洲国产成人久久精品网站| 韩日精品中文字幕| 日韩第一页在线| 久久99亚洲热视| 欧美激情久久久| 黑人巨大精品欧美一区二区一视频| 97成人超碰免| 亚洲成av人乱码色午夜| 欧美一级大片视频| 国产成人精品av在线| 久久精品成人欧美大片| 色偷偷av一区二区三区乱| 69视频在线播放| 国产精品久久久久高潮| 成人免费淫片视频软件| 福利一区福利二区微拍刺激| 亚洲永久在线观看| 成人a级免费视频| 久久久黄色av| 91欧美精品午夜性色福利在线| 成人激情视频网| 精品国产鲁一鲁一区二区张丽| 亚洲a级在线观看| 亚洲国产99精品国自产| 色悠悠国产精品| 亚洲护士老师的毛茸茸最新章节| 亚洲视频综合网| 九九热这里只有精品6| 国产大片精品免费永久看nba| 欧美大肥婆大肥bbbbb| 尤物99国产成人精品视频| 日韩精品极品在线观看播放免费视频| 久久人人爽亚洲精品天堂| 国产91热爆ts人妖在线| 久久久国产精品免费| 夜夜嗨av一区二区三区四区| 国产日韩视频在线观看| 日韩成人网免费视频| 精品国产福利在线| 国语自产偷拍精品视频偷| 久久久国产精品视频| 精品国内自产拍在线观看| 国内精品久久久久久久久| 久久精品免费播放| 国产欧美欧洲在线观看| 欧美激情精品久久久| 亚洲免费高清视频| 精品国产区一区二区三区在线观看| 国产精品精品久久久| 国产成人aa精品一区在线播放| 国产精品直播网红| 久久久久九九九九| 日韩一区av在线| 欧美最猛性xxxx| 亚洲最大福利视频网| 亚洲无线码在线一区观看| 欧美一级片免费在线| 国产一区二区三区久久精品| 亚洲黄色av女优在线观看| 亚洲综合日韩中文字幕v在线| 97人人模人人爽人人喊中文字| 欧美最顶级丰满的aⅴ艳星| 欧美激情在线观看视频| 欧美性猛交xxx| 国产精品日韩av| 欧美激情影音先锋| 亚洲乱码国产乱码精品精| 亚洲第一精品夜夜躁人人爽| 欧美激情精品久久久久久黑人| 韩国一区二区电影| 国产91色在线|免| 欧美午夜www高清视频| 国产一区二区日韩精品欧美精品| 亚洲18私人小影院| 欧美放荡办公室videos4k| 精品国产鲁一鲁一区二区张丽| 日韩欧美有码在线| 国产精品自产拍高潮在线观看| 亚洲精品成a人在线观看| 成人免费淫片aa视频免费| 亚洲老头同性xxxxx| 日韩欧美国产网站| 国产欧美日韩中文字幕| 亚洲理论在线a中文字幕| 久久天天躁狠狠躁夜夜躁2014| 富二代精品短视频| 成人妇女淫片aaaa视频| 国产精品久久久久一区二区| 国产在线精品一区免费香蕉| 日韩精品电影网| 欧美色另类天堂2015| 国模精品一区二区三区色天香| 高清欧美一区二区三区| 国产91在线播放九色快色| 欧美成人午夜激情视频| www.欧美精品一二三区| 国产精品自产拍高潮在线观看| 欧美激情第一页xxx| 伊人亚洲福利一区二区三区| 欧美做受高潮电影o| 91av在线国产| 92裸体在线视频网站| 亚洲一区二区三区在线视频| 97香蕉超级碰碰久久免费软件| 亚洲**2019国产| 久久色在线播放| 亚洲精品videossex少妇| 亚洲人成电影网| 亚洲高清免费观看高清完整版| 日韩精品日韩在线观看| 精品国产自在精品国产浪潮| 欧美最顶级丰满的aⅴ艳星| 草民午夜欧美限制a级福利片| 国产日韩在线看片| 啪一啪鲁一鲁2019在线视频| 亚洲国产天堂网精品网站| 久久久久久久影院| 国产91亚洲精品| 亚洲男人av在线| 不卡av电影在线观看| 国产日本欧美在线观看| 欧美放荡办公室videos4k| 在线不卡国产精品| 欧美大人香蕉在线| 欧美黄网免费在线观看| xxav国产精品美女主播| 成人免费xxxxx在线观看| 欧美特级www| 精品动漫一区二区| 亚洲一级一级97网| 中文字幕精品国产| 亚洲自拍偷拍在线| 91精品国产高清久久久久久91| 亚洲欧美成人在线| 亚洲国产成人精品久久| 成人免费淫片视频软件| 97精品国产97久久久久久春色| 成人在线一区二区| 精品福利在线视频| 欧美亚洲视频一区二区| 国产精品1234| 久久久久国产精品免费| 国产成人高潮免费观看精品| 红桃av永久久久| 日韩亚洲在线观看| 俺去啦;欧美日韩| 亚洲人成网站色ww在线| 亚洲精品一区中文字幕乱码| 国产国语videosex另类| 日韩影视在线观看| 国产精品久久久久久久久久| 亚洲91精品在线观看|