Php 防止代码中的SQL注入
我正在为大学作业创建一个网站。。我有一个“记住我”按钮和所有这些好东西,但是有人检查了我的代码,说可以进行Php 防止代码中的SQL注入,php,sql-injection,Php,Sql Injection,我正在为大学作业创建一个网站。。我有一个“记住我”按钮和所有这些好东西,但是有人检查了我的代码,说可以进行SQL注入 最好的做法是什么 我只需要指导: <?php include 'functions.php'; if (loggedin()) { header("Location: index.php"); exit(); } if (isset($_POST['login'])) {
SQL
注入
最好的做法是什么
我只需要指导:
<?php
include 'functions.php';
if (loggedin())
{
header("Location: index.php");
exit();
}
if (isset($_POST['login']))
{
$username = $_POST['username'];
$password = $_POST['password'];
if (isset($_POST['rememberme']))
{
$rememberme = $_POST['rememberme'];
}
if ($username && $password)
{
$login = mysql_query("SELECT * FROM users WHERE username='$username'");
while($row = mysql_fetch_assoc($login))
{
$db_password = $row['password'];
if($password == $db_password)
{
$loginok = TRUE;
}
else
{
$loginok = FALSE;
}
if ($loginok == TRUE)
{
if($rememberme == "on")
{
setcookie("username", $username, time() + 7200);
}
else
{
if ($rememberme == "")
{
$_SESSION['username'] = $username;
}
}
header("Location: index.php");
exit();
}
有一个名为addslashes()的php方法,它会自动将转义序列添加到任何字符串中,该字符串应该处理较小的SQL注入尝试不要使用mysql\uuu
扩展-使用mysqli
或PDO并使用准备好的语句。这是让你在谷歌上搜索的简短答案——也看看这个问题/答案——从这里开始:简短的答案是,将用户输入直接连接到SQL查询中会将该输入视为可执行代码,因此存在SQL注入漏洞。永远不要将用户输入视为可执行代码。仅将其视为数据值。您可以找到PDO_MYSQL