我正在向db中插入數據,並且進行了以下驗證,其中我只接受'
和&
和@
和.
。之後,我使用mysqli_real_escape_string($var)
。Php請求表達式是否安全以將數據插入數據庫?
所以我看到它的輸出是:
I\'m a good boy &@ is it secure var for input to DB.
我的問題:
1)是否有任何安全問題,如果我接受'
和&
和@
和.
會出現在哪裏?
2)如果它不是安全問題,那麼它將db插入\
。用反斜槓存儲數據有問題嗎?
3)如果它不是安全問題,那麼在用戶面板數據顯示\
。那麼是否需要用stripslashes($var);
來逃脫?
我的驗證:
$var = "I'm a good boy &@ is it secure var for input to DB.";
if(preg_match("/^[a-zA-Z0-9.'&@ ]+$/", $var) !== 1)
echo "var is NOT OK.<br/>";
else
echo "var is ok.<br/>";
mysqli_real_escape_string($link, $var);
使用預準備語句時不需要所有這些。 – 2014-10-29 06:32:32
只需使用預準備語句而不是使用mysqli_real_escape_string – Ali 2014-10-29 06:33:39
@ Fred-ii-哇,就可以忽略由單引號引起的所有安全問題!大。一行答案。但根據我的問題,你有任何答案? – creativeartbd 2014-10-29 06:34:22