摘要:在對用戶輸入數(shù)據(jù)進行過濾時通常都是自己寫方法進行判斷比如驗證郵箱的時候使用正則表達式郵件格式有誤如果不用正則還有其它跟簡單的方法嗎使用相關(guān)函數(shù)是否存在指定類型的變量。獲取多項變量,并進行過濾。
在對用戶輸入數(shù)據(jù)進行過濾時通常都是自己寫方法進行判斷
比如驗證郵箱的時候使用正則表達式
$pattern = "/w+([-+."]w+)*@w+([-.]w+)*.w+([-.]w+)*/"; if (!preg_match($pattern, $email)) { throw new Exception(self::ERROR_PARAMETER_EMPTY . "_郵件格式有誤:" . $email); }
如果不用正則還有其它跟簡單的方法嗎?
使用filter相關(guān)函數(shù)filter_has_var(type, variable) 是否存在指定類型的變量。filter_has_var
filter_input 從腳本外部獲取輸入,并進行過濾。
filter_input_array 從腳本外部獲取多項輸入,并進行過濾。
filter_var 獲取一個變量,并進行過濾。
filter_var_array 獲取多項變量,并進行過濾。
判斷$_GET 的結(jié)果是否包含name
if(!filter_has_var(INPUT_GET, "name")) { echo("name 不存在"); } else { echo("name 存在"); }filter_input
看一個驗證郵箱的例子
if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "E-Mail is not valid"; } else { echo "E-Mail is valid"; }filter_input_array
對整個input源進行過濾
$filters = array ( "name" => array ( "filter"=>FILTER_CALLBACK, "flags"=>FILTER_FORCE_ARRAY, "options"=>"ucwords" ), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array ( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL, ); print_r(filter_input_array(INPUT_POST, $filters));filter_var,filter_var_array
不需要input源,直接對值進行過濾
if(!filter_var("someone@example....com", FILTER_VALIDATE_EMAIL)) { echo("E-mail is not valid"); } else { echo("E-mail is valid"); }input源的范圍 驗證 其它過濾方法
strip_tags 刪除html標簽
htmlentities 把字符轉(zhuǎn)換為 HTML 實體,(還會把貨幣表示符號歐元英鎊等、版權(quán)符號等轉(zhuǎn)義)
htmlspecialchars 函數(shù)把預定義的字符轉(zhuǎn)換為 HTML 實體。
預定義的字符是:
& (和號)成為 &
" (雙引號)成為 "
" (單引號)成為 "
< (小于)成為 <
(大于)成為 >
*提示:如需把特殊的 HTML 實體轉(zhuǎn)換回字符,請使用 htmlspecialcharsdecode() 函數(shù)。
$input = "我是標題";
echo htmlspecialchars($input) . "
";
echo htmlentities($input) . "
";
echo strip_tags($input) . "
";
$input = "-- "select * from ";
echo addslashes($input) . "
";
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/29692.html
摘要:過濾驗證和轉(zhuǎn)義不要相信任何來自不受自己直接控制的數(shù)據(jù)源中的數(shù)據(jù)。加密和哈希不是一回事,加密是雙向算法,加密的數(shù)據(jù)可以被解密。使用密碼哈希簡化計算密碼哈希和驗證密碼的操作。密碼的哈希值存儲在類型的數(shù)據(jù)庫列中。 過濾、驗證和轉(zhuǎn)義 1).不要相信任何來自不受自己直接控制的數(shù)據(jù)源中的數(shù)據(jù)。包括但不限于: $_GET $_POST $_REQUEST $_COOKIE $argv php://...
摘要:參考了這篇文章偽協(xié)議實現(xiàn)命令執(zhí)行的七種姿勢,并根據(jù)自己理解進行了總結(jié),也算是加深一下印象,方便以后使用。說明文件系統(tǒng)是使用的默認封裝協(xié)議,展現(xiàn)了本地文件系統(tǒng)。允許直接訪問指定的文件描述符。 參考了這篇文章:php偽協(xié)議實現(xiàn)命令執(zhí)行的七種姿勢,并根據(jù)自己理解進行了總結(jié),也算是加深一下印象,方便以后使用。 file:// 協(xié)議 條件: allow_url_fopen:off/on...
摘要:由于越來越多的項目開始使用框架,所以,很多的程序員也不在關(guān)心安全的問題因為框架已經(jīng)幫我們幾乎完美的處理了但是,個人認為,我們還是需要了解一下常用的安全處理函數(shù)原因簡單很多小的功能和項目是用不到框架的,我們需要自己解決安全問題常用的安全函數(shù)有 由于越來越多的項目開始使用框架,所以,很多的程序員也不在關(guān)心安全的問題!因為框架已經(jīng)幫我們幾乎完美的處理了!但是,個人認為,我們還是需要了解一下常...
摘要:提交數(shù)據(jù)過濾的基本原則提交變量進數(shù)據(jù)庫時,我們必須使用進行過濾,像我們的注入問題,一個也就搞定了。其實在涉及到變量取值時,函數(shù)對字符串的過濾也是個不錯的選擇。對于進出數(shù)據(jù)庫的數(shù)據(jù)可以起到格式話的作用。簡單的數(shù)據(jù)過濾入庫出庫顯示 1、php提交數(shù)據(jù)過濾的基本原則 1)提交變量進數(shù)據(jù)庫時,我們必須使用addslashes()進行過濾,像我們的注入問題,一個addslashes()也就搞定...
閱讀 2481·2021-11-16 11:45
閱讀 2453·2021-10-11 10:59
閱讀 2257·2021-10-08 10:05
閱讀 3844·2021-09-23 11:30
閱讀 2380·2021-09-07 09:58
閱讀 813·2019-08-30 15:55
閱讀 780·2019-08-30 15:53
閱讀 1929·2019-08-29 17:00