這應該是一個基本的問題,但爲什麼是更好地使用這樣的事情:爲什麼最好使用filter_input()?
$pwd = filter_input(INPUT_POST, 'pwd');
而不只是:
$pwd = $_POST['pwd'];
PS:據我瞭解,過濾器擴展可以用更多的參數一起使用提供額外的衛生等級。
這應該是一個基本的問題,但爲什麼是更好地使用這樣的事情:爲什麼最好使用filter_input()?
$pwd = filter_input(INPUT_POST, 'pwd');
而不只是:
$pwd = $_POST['pwd'];
PS:據我瞭解,過濾器擴展可以用更多的參數一起使用提供額外的衛生等級。
它不是。 $_GET
,$_POST
,$_COOKIE
和$_REQUEST
是filtered with default filter。沒有附加參數的filter_input(INPUT_POST, 'pwd')
也使用默認過濾器。所以根本沒有區別。
這是從客戶端(如POST數據)發送的任何數據應被拆除並逃脫(甚至更好,理智覈對),以確保其不會殺你的網站。
SQL Injection和Cross-site scripting是未能清理用戶發送的數據的兩大威脅。
如果在打印任何用戶提供的數據之前使用參數化查詢和htmlspecialchars(),那麼filter_input()仍然是必需的嗎? – Calvin 2009-04-20 14:27:21
filter_input(INPUT_POST,'pwd'); (沒有任何其他的說法仍然進行消毒價值 – 2009-04-20 14:29:56
這不是更好。
請參閱filter_input http://www.php.net//manual/en/function.filter-input.php
文檔,然後單擊鏈接 「的過濾器類型」。 http://www.php.net/manual/en/filter.filters.php
我只用過整數過濾器...
$user_id = filter_input(INPUT_POST, 'user_id', FILTER_SANITIZE_NUMBER_INT);
$user = abs($user_id); // To get rid of any +/-
的問題比接受的答案更多的選票。有趣... – sMaN 2014-08-05 10:39:59