2013-10-25 166 views
0

即時通訊尋找所有的方法來防止人們在php級別輸入php代碼到文本字段。我有預防從SQL注入,但我不需要一種方法來防止人們說我的if語句搞亂了嗎?防止php注入

$email=$_POST["email"]; 
if(filter_var($email, FILTER_VALIDATE_EMAIL)) 
{ 
    //do suff 
} 

用戶可以不輸入「不@ @ valid @ email.com = [email protected]」作爲電子郵件,它將被視爲有效。 我知道這個例子對於服務器來說並不壞,但我確信其他人會想出更致命的方法。

或者我擔心的是從來沒有問題的東西?

+1

除非您調用'eval()',否則PHP不會將代碼作爲代碼執行。 – Barmar

回答

1

這不是問題,因爲用戶數據是字符串的值。這是沒有什麼不同的說法:

filter_var("die()", FILTER_VALIDATE_EMAIL) 

這也不會殺死你的程序。這只是文字。

只是不要使用eval。從來沒有,但特別是沒有用戶輸入。

+0

哦,我現在明白了sql需要準備,因爲它是一個字符串聲明,但PHP不同代碼作爲一個字符串謝謝你 –