PHP 過濾器

PHPz
發布: 2024-08-29 13:03:46
原創
525 人瀏覽過

很少語言具有過濾功能。過濾器是程式語言的加值功能之一。這有助於我們在處理之前過濾資料或字串。現在需要使用它來防止系統中的某些漏洞問題。 PHP 過濾器可用於驗證或清理外部輸入。 PHP 過濾器是一個擴展,具有我們可以在編碼時使用的各種功能和特性。例如,如果我們將表單中的用戶端輸入為電子郵件 ID,我們應該在與資料庫相關的操作之前對其進行驗證或清理。作為編碼員或開發人員,我們應該根據我們的業務需求和要求在 PHP 中使用這些過濾器。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法

清理和過濾是 Web 應用程式環境中最常見的操作。這是基本語法:

filter_var(variable, filter, options)
登入後複製

這個函數filter_var有3個參數。最後 2 個參數、過濾器和選項是可選的。第一個是變數或標識符本身。這是我們想要過濾的,第二個是我們想要做的(在這裡,我們傳遞了 PHP 中可用選項的 ID),最後一個是與過濾器相關的選項。讓我們透過一個測驗範例來理解這一點:

代碼:

<?php
$int_val = 200;
if(filter_var($int_val, FILTER_VALIDATE_INT)){
echo "The <b>$int_val</b> is a valid one."; // valid
} else{
echo "The <b>$int_val</b> not a valid input as an integer"; // invalid
}
?>
登入後複製

在上面的範例中,我們使用篩選器並檢查變數 $int_val 中是否有整數值。所以,這是相同的輸出。

輸出:

PHP 過濾器

為什麼我們在 PHP 中使用過濾器?

許多 PHP Web 應用程式從客戶端接收外部輸入。這個想法是在處理之前清理用戶輸入,因為我們不能期望用戶正確輸入所有資料。任何外部使用者或系統輸入或資料都可能導致嚴重的安全問題。

我們可以在此處過濾以清理從各種外部來源輸入的數據,例如:

  • 直接客戶端使用者從表單輸入
  • Cookie 資料
  • 來自網路服務的資料
  • 伺服器變數資料
  • 資料庫查詢結果

PHP 過濾器和消毒器一起使我們能夠了解輸入是否有效。如果不是有效的輸入,在這種情況下,我們可以對其進行清理以使其成為有效的輸入。在接下來的範例部分中,我們將討論與此相關的各種範例。

PHP 中的過濾器範例

PHP 中有多種類型的過濾器可用。我們可以使用 filter_list() 函數來檢查該列表。這些函數過濾 URL、字串、數字、IP 位址等

範例#1

在本節中,我們將分別看到各種過濾器範例程式。

清理字串

檢查字串是否有效

代碼:

<?php
$comment = "Hello word";
if(filter_var($comment, FILTER_SANITIZE_STRING)){
echo "The <b>$comment</b> is a valid one."; // valid
} else{
echo "The <b>$comment</b> not a valid input"; // invalid
}
?>
登入後複製

在上面的例子中,我們可以看到一個有效的字串;這就是為什麼它給出有效的。

輸出:

PHP 過濾器

取得經過清理的字串作為輸出

<?php
$comment = "<i>Hello word</i>";
echo "Before sanitizing: ". $comment;
$comment = filter_var($comment, FILTER_SANITIZE_STRING);
echo "<br>"; // for new line
echo "After sanitizing: ". $comment;
?>
登入後複製

我們可以看到我們有兩個不同的輸出。我們可以看到消毒前後的輸出是不同的。清理後,HTML 標籤已被 PHP 過濾功能刪除。

輸出:

PHP 過濾器

範例#2

驗證 IP 位址

PHP濾波函數可以幫我們完成這個工作。讓我們看一下例子。

代碼:

<?php
$ip_address = "172.16.254.1:40";
if(filter_var($ip_address, FILTER_VALIDATE_IP)){
echo "The <b>$ip_address</b> is a valid one."; // valid
} else{
echo "The <b>$ip_address</b> is not a valid input"; // invalid
}
?>
登入後複製

輸出:

PHP 過濾器

範例 #3

清理並驗證電子郵件地址

代碼:

<?php
$email_address = "someone@@testmail.com";
code>
echo "Before Sanitizing: " . $email_address ."<br>";
if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){
echo "The <b>$email_address</b> is a valid one."; // valid
} else{
echo "The <b>$email_address</b> not a valid input"; // invalid
}
echo "<br>";
echo "After Sanitizing: " .  filter_var($email_address, FILTER_SANITIZE_EMAIL);
?>
登入後複製

在上面的範例中,我們有一個無效的電子郵件 ID 值,因為我們透過使用篩選函數來取得此輸出。但當我們清理後,它就會給予正確的電子郵件。

輸出:

PHP 過濾器

代碼:

<?php
$email_address = "[email protected]";
if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){
echo "The <b>$email_address</b> is a valid one."; // valid
} else{
echo "The <b>$email_address</b> not a valid input"; // invalid
}
?>
登入後複製

在上面的 PHP 程式碼範例中,我們檢查電子郵件是否有效。

輸出:

PHP 過濾器

範例#4

清理並驗證 URL

在此範例中,我們將查看輸入的 URL 是否有效。如果不是有效的 URL,它將對其進行清理以進行更正。

代碼:

<?php
$URL = "https://www.educba.com/��courses�";
echo "Before Sanitizing: " . $URL ."<br>";
if(filter_var($URL, FILTER_VALIDATE_URL)){
echo "The <b>$URL</b> is a valid one."; // valid
} else{
echo "The <b>$URL</b> is not a valid input"; // invalid
}
echo "<br>";
echo "After Sanitizing: " . filter_var($URL, FILTER_SANITIZE_URL);
?>
登入後複製

輸出:

PHP 過濾器

結論

我們應該使用 PHP 過濾器來驗證或清理使用者輸入。這樣,我們就可以限制易受攻擊的使用者輸入。我們可以使用各種 PHP 過濾器函數來驗證使用者輸入和值。我們也可以使用清理來清理值(使用者輸入或直接指派的值)。在使用任何 cookie 資料進行資料處理之前,我們應該始終使用 PHP 清理程式。

以上是PHP 過濾器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!