php 的安全過濾(基礎篇)

2022-02-19 04:49:45 字數 2499 閱讀 6354

php 5.2 以上提供了乙個非常簡單好用的自帶函式 filter_var ,下面是對這個函式使用的詳細介紹。

驗證資料型別是否為boolean

舉例:[php]view plain

copy

<?php   

$value01

= true;    

if(filter_var(

$value01

,filter_validate_boolean))  else

echo''

;   

$value02

= true;    

if(filter_var(

$value02

,filter_validate_boolean))  else

?>  

filter_validate_email驗證是否為email

filter_validate_float:驗證是否為浮點型

filter_validate_int:驗證是否為整型

filter_validate_ip:驗證是否是合法ip

filter_validate_url:驗證是否是合法url

filter_sanitize_string:對字串進行消毒過濾,這個引數會過濾並把不合法的使用者輸入自動去掉,例如:html標籤等。

舉例程式:

[php]view plain

copy

<?php   

$value

= ""

;    

echo

filter_var(

$value

, filter_sanitize_string);    

echo""

;  $value

= "alert('boy's book');"

;  echo

filter_var(

$value

,filter_sanitize_string);  

?>  

[html]view plain

copy

alert('trouble here');  

alert('boy's book');  

filter_sanitize_encoded:對輸入的編碼進行url編碼,功能類似於urlencode。

filter_sanitize_special_chars:過濾掉所有html標籤

filter_sanitize_url:類似於filter_sanitize_email,去掉在url中無效的符號。

filter_sanitize_number_int:類似於filter_validate_int,但是他除了簡單判斷是否是整形以外,還將返回過已濾掉非數字字元的字元傳(

暈死,還是看個例子吧)

[php]view plain

copy

$value01

= '1你好嗎23abc45%#6def'

;    

echo

filter_var(

$value01

, filter_sanitize_number_int);   

filter_sanitize_number_float:功能目前我發現的就是同上,但是為啥既然是一樣的他們兩個還都同時存在呢,乙個最主要的原因就是當  filter_sanitize_numer_float後面加了filter_flag_allow_fraction這個引數以後就會體現不同了。(那為啥不直接就定義個可以只過濾個浮點數的引數嘞,偶也不知道

)看看這個例子吧:

[php]view plain

copy

$value

= '1.23'

;    

echo

filter_var(

$value

, filter_sanitize_number_float, filter_flag_allow_fraction);    

當然,避免注入還有很多其他簡單又基本的方法:

例如我們還可以用:

htmlspecialcharshtmlentitiesmysql_real_escape_string

或者你甚至還可以自己定義些自己需要的方法。

好啦,就寫到這裡吧。本文很大一部分參考了getting clean with php這篇文章,在此非常感謝之:)

PHP安全 過濾

我們在開發應用時,一般有個約定 不要信任任何來自不受自己控制的資料來源中的資料。例如以下這些外部源 所有這些外部源都可能是攻擊媒介,可能會 有意或無意 把惡意資料注入php指令碼。編寫接收使用者輸入然後渲染輸出的php指令碼很容易,可是要安全實現的話,需要下一番功夫。我這裡以陳咬金的三板斧為引子,給...

php常用的安全過濾函式

由於越來越多的專案開始使用框架,所以,很多的程式設計師也不在關心安全的問題!因為框架已經幫我們幾乎完美的處理了!但是,個人認為,我們還是需要了解一下常用的安全處理函式!原因簡單 很多小的功能和專案是用不到框架的,我們需要自己解決安全問題!mysql real escape string addsla...

php常用的安全過濾函式

目錄結構 由於越來越多的專案開始使用框架,所以,很多的程式設計師也不在關心安全的問題!因為框架已經幫我們幾乎完美的處理了!但是,個人認為,我們還是需要了解一下常用的安全處理函式!原因簡單 很多小的功能和專案是用不到框架的,我們需要自己解決安全問題!mysql real escape string a...