首頁 > 後端開發 > php教程 > 已棄用的 PHP FILTER_SANITIZE_STRING 和 FILTER_SANITIZE_STRIPPED 常數的最佳替代品是什麼?

已棄用的 PHP FILTER_SANITIZE_STRING 和 FILTER_SANITIZE_STRIPPED 常數的最佳替代品是什麼?

Mary-Kate Olsen
發布: 2024-11-30 20:26:12
原創
980 人瀏覽過

What are the Best Replacements for the Deprecated PHP FILTER_SANITIZE_STRING and FILTER_SANITIZE_STRIPPED Constants?

了解折舊通知:常數 FILTER_SANITIZE_STRING 已棄用

在 PHP 8.1 中,常量 FSTRTER_🎜>

在 PHP 8.1 中,常量 FSTRTER_SANITIZE_STRING。這就提出了一個問題:這些常數的合適替代品是什麼?

折舊原理

這些過濾器的用途不精確,可能會造成混亂。它們的功能經常被誤解為預設字串過濾器 FILTER_UNSAFE_RAW。因此,PHP 社群已棄用它們的使用。

替換選項

有多個選項可用於取代 FILTER_SANITIZE_STRING和FILTER_SANITIZE_STRIPPED:
  • FILTER_UNSAFE_RAW:
  • 此過濾器不應用任何過濾,如果不需要特定的清理即可使用。
  • htmlspecialchars():
  • 使用此功能透過對輸出進行編碼來防禦 XSS 漏洞,而不是清理輸入。
  • 自訂正規表示式 Polyfill:
  • 對於需要特定功能的情況,可以建立正規表示式 Polyfill 來複製已棄用過濾器的行為:
function filter_string_polyfill(string $string): string
{
    $str = preg_replace('/\x00|<[^>]*>?/', '', $string);
    return str_replace([&quot;'&quot;, '&quot;'], ['&amp;#39;', '&amp;#34;'], $str);
}
登入後複製

最佳實務:輸出逃脫

請務必記住,清除輸入並不能有效防止安全風險。相反,應重點關注轉義輸出以防止 XSS 漏洞。這可以確保輸出是安全的,無論可能收到任何惡意輸入。

以上是已棄用的 PHP FILTER_SANITIZE_STRING 和 FILTER_SANITIZE_STRIPPED 常數的最佳替代品是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板