加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 防止SQL注入

发布时间:2020-12-13 22:42:53 所属栏目:PHP教程 来源:网络整理
导读:我正在开发一个网站,我正在努力保护连接部分. 我在$login上使用了addslashes函数来停止SQL注入,但有些朋友告诉我安全性不够.但是,他们没有告诉我如何利用此漏洞. 我怎么能/你能破坏这段代码? 我该如何保护它? ?php if ( isset($_POST) (!empty($_POST['log
我正在开发一个网站,我正在努力保护连接部分.

我在$login上使用了addslashes函数来停止SQL注入,但有些朋友告诉我安全性不够.但是,他们没有告诉我如何利用此漏洞.

我怎么能/你能破坏这段代码?
我该如何保护它?

<?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注入示例.

更好的解决方案是使用预准备语句,您可以使用PDO或mysqli来完成此操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读