如何保护PHP中的SQL不受SQL注入的影响?

如何保护PHP中的SQL不受SQL注入的影响?,php,sql,sql-injection,Php,Sql,Sql Injection,谁能帮我一点忙吗?我有三个PHP SQL查询,我必须防止SQL注入。我在谷歌上搜索,但我觉得对我来说太难了,因为它与PHP结合在一起,我不知道munch关于PHP,lees关于SQL 如果有人能给我密码,我会很感激的 守则: $q=mysql_query("SELECT * FROM user where email= '".$_REQUEST['email']."'",$link ); $q=mysql_query("UPDATE user SET mobilePhone='".$_REQU

谁能帮我一点忙吗?我有三个PHP SQL查询,我必须防止SQL注入。我在谷歌上搜索,但我觉得对我来说太难了,因为它与PHP结合在一起,我不知道munch关于PHP,lees关于SQL

如果有人能给我密码,我会很感激的

守则:

$q=mysql_query("SELECT * FROM user where email= '".$_REQUEST['email']."'",$link );

$q=mysql_query("UPDATE user SET mobilePhone='".$_REQUEST['mobilePhone']."', fullName='".$_REQUEST['fullName']."' WHERE email='".$_REQUEST['email']."'",$link );

$q=mysql_query("UPDATE user SET mobilePhone='".$_REQUEST['mobilePhone']."' , fullName='".$_REQUEST['fullName']."', password='".$_REQUEST['password']."'  WHERE email='".$_REQUEST['email']."'",$link );

看看PHP的mysql\u real\u escape\u字符串

看看PHP的mysql\u real\u escape\u字符串

要防止SQL注入,至少要在进入查询的任何变量之前使用函数

您所能做的最好的事情就是避免SQL注入

准备好的语句的参数 不需要被引用;司机 自动处理这个问题如果是 应用程序仅使用准备好的 语句,开发人员可以肯定 不会发生SQL注入 (但是,如果 查询正在使用 未切换的输入,SQL注入是 仍有可能)。

建议:


为了更安全起见,您应该始终使用适当的数组,例如
$\u POST
$\u GET
,而不是
$\u REQUEST
,这是出于安全原因。

为了防止SQL注入,您至少可以在进入查询的任何变量之前使用函数

您所能做的最好的事情就是避免SQL注入

准备好的语句的参数 不需要被引用;司机 自动处理这个问题如果是 应用程序仅使用准备好的 语句,开发人员可以肯定 不会发生SQL注入 (但是,如果 查询正在使用 未切换的输入,SQL注入是 仍有可能)。

建议:


为了更加安全,出于安全原因,您应该始终使用适当的数组,例如
$\u POST
$\u GET
,而不是
$\u REQUEST

嗯,简单的方法是将每个
$\u REQUEST
变量包装在


更好的方法是使用准备好的查询。有很多关于如何做的教程,所以我将把它们留给你……

好吧,简单的方法是将每个
$\u请求
变量包装在


更好的方法是使用准备好的查询。关于如何实现这一点,有很多教程可供选择,因此我将把这一点留给您……

使用占位符复制准备好的语句是一种更好的做法。+1虽然准备好的语句更好,但这并不意味着使用
mres
是一件坏事。你仍然安全…@ircmaxell如果使用得当,mres中没有什么不好的。一个傻瓜(loke OP)会因为准备好而失败。大脑是唯一必要的东西,其余的都是可选的。带占位符的准备好的语句是更好的做法。+1虽然准备好的语句更好,但这并不意味着使用
mres
是一件坏事。你仍然安全…@ircmaxell如果使用得当,mres中没有什么不好的。一个傻瓜(loke OP)会因为准备好而失败。大脑是唯一必要的东西,其余的都是可选的。
$q=mysql_query("SELECT * FROM user 
    where email= '".mysql_real_escape_string($_REQUEST['email'])."'",$link );