2010-01-22 65 views
5

在我的註冊功能中使用此代碼修剪和轉義所有帖子可以嗎?或者是更好的做法,修剪和逃避每個輸入這很聰明還是不行?

// Trim and sanitize our input 
$_POST = array_map('trim', $_POST); 
$_POST = array_map('mysql_real_escape_string', $_POST); 

if (invalidinput) dostuff 
else insert into user (username,passwd) values ('{$_POST['username']}','{$_POST['passwd']}') 

回答

9

沒有,因爲:

  1. 它不會對多維數組。
  2. 您可能不會使用每個$_POST值作爲數據庫參數,因此3)。
  3. 它可能會不必要的緩慢。
  4. mysql_real_escape_string()可能需要$link_identifier參數。

點#1可以用自定義遞歸函數來計算,代價是速度更慢。

0

編號

您不應該首先逃避。你應該使用綁定參數。

+1

我當然更喜歡綁定參數,但只要你正在做一些事情來正確地逃避你的SQL輸入,沒有不使用它們的危害。 – 2010-01-22 21:36:02