Php 如何避免'='';或';

Php 如何避免'='';或';,php,mysql,sql-injection,Php,Mysql,Sql Injection,我制作PHP网站 使用用户/通行证登录 但用户可以通过使用跳过此页面 “=”或“ '或1=1 这样地 在文件Login_Check.php中编写代码 ` `您希望避免在查询中使用用户数据,而不使用任何类型的数据。 “示例#5组合查询的更安全方法…” 如果数据库层不支持绑定变量,则引用 传递到数据库的每个非数字用户提供的值 使用特定于数据库的字符串转义函数(例如。 mysql_real_escape_string()、sqlite_escape_string()等)。通用的 像addsla

我制作PHP网站 使用用户/通行证登录 但用户可以通过使用跳过此页面
“=”或“
'或1=1 这样地 在文件Login_Check.php中编写代码

`


`

您希望避免在查询中使用用户数据,而不使用任何类型的数据。

“示例#5组合查询的更安全方法…”


  • 如果数据库层不支持绑定变量,则引用 传递到数据库的每个非数字用户提供的值 使用特定于数据库的字符串转义函数(例如。 mysql_real_escape_string()、sqlite_escape_string()等)。通用的 像addslashes()这样的函数只有在非常特定的情况下才有用 环境(例如,单字节字符集中的MySQL已禁用 没有反斜杠,所以最好避免它们
  • 不要打印任何特定于数据库的信息,尤其是关于 模式,不管是公平的还是不公平的。另请参见错误报告和错误报告 处理和记录功能
  • 可以使用存储过程和以前定义的游标 抽象数据访问,以便用户不直接访问表或 视图,但此解决方案还有另一个影响
此外,您还可以使用绑定参数:


您所经历的被称为。阅读我刚刚发布的链接和@Nathantugy评论中的链接。
include("includeszzz/host_conf.php");
include("includeszzz/mysql.lib.php");
$obj=new connect;
$obj1=new connect;
$username=$_GET["username"];
$password=$_GET["password"];
//echo $username;
//echo $password;
$sql="select username from  admin where username='$username'";
$obj->query($sql);
$U_num=$obj->num_rows();
//echo $U_num;
if($U_num!=0) {
$sql1="select password from admin where username='$username' and password='$password'";
$obj1->query($sql1);
$P_num=$obj1->num_rows();
    if($P_num!=0) {
        session_start();
        $_SESSION["zizo"]="$username";
    //header("location: welcome.php");
    echo "1";
} else {
    echo "Invalid Password Please Try Again";
}
}  else {
echo "Invalid Username Please Try Again";
}
<?php

settype($offset, 'integer');
$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

// please note %d in the format string, using %s would be meaningless
$query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                 $offset);

?>
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>