gpt4 book ai didi

php - 防止 SQL 注入(inject)

转载 作者:可可西里 更新时间:2023-11-01 13:04:05 25 4
gpt4 key购买 nike

我正在开发一个网站,我正在尝试保护连接部分。

我在 $login 上使用了 addslashes 函数来阻止 SQL 注入(inject),但一些 friend 告诉我这不够安全。但是,他们没有向我展示如何利用此漏洞。

我/你能怎样破解这段代码?我怎样才能保护它?

<?php

if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
{
extract($_POST);
$sql = "SELECT pseudo, sex, city, pwd FROM auth WHERE pseudo = '".addslashes($login)."'";
$req = mysql_query($sql) or die('Erreur SQL');
if (mysql_num_rows($req) > 0)
{
$data = mysql_fetch_assoc($req);
if ($password == $data['pwd'])
{
$loginOK = true;
}
}
}
?>

最佳答案

你应该使用 mysql_real_escape_string用于转义查询中的字符串输入参数。使用类型转换来清理数字参数,使用白名单来清理标识符。

在引用的 PHP 页面中,有一个登录表单中的 sql 注入(inject)示例。

更好的解决方案是使用准备好的语句,您可以使用 PDO 来实现或 mysqli .

关于php - 防止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com