我正在向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