棄用常數 FILTER_SANITIZE_STRING
隨著 PHP 8.1 的發布,常數 FILTER_SANITIZE_STRING 已被棄用。這引起了以前依賴此過濾器來清理字串輸入的開發人員的擔憂。
為什麼 FILTER_SANITIZE_STRING 被棄用?
根據 PHP 社群的說法,FILTER_SANITIZE_STRING 有一個不清楚的地方目的並可能導致混亂。它刪除了任意內容,但沒有對其功能提供明確的解釋。此外,它已被更有效的字串清理技術所取代。
你可以用什麼來取代它?
有幾個選項可以取代已棄用的FILTER_SANITIZE_STRING:
範例Polyfill
function filter_string_polyfill(string $string): string { $str = preg_replace('/\x00|<[^>]*>?/', '', $string); return str_replace(["'", '"'], ['&#39;', '&#34;'], $str); }
最佳實踐:轉義輸出
需要強調的是,清理應該應用於輸出數據,而不是輸入數據。透過轉義輸出中的特殊字符,您可以防止惡意腳本或資料影響您的應用程式。
以上是替換已棄用的 PHP FILTER_SANITIZE_STRING 的最佳方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!