PHP和Mysql登录功能防止SQL注入

小云云
发布: 2018-02-27 10:40:05
原创
1778人浏览过

最近在了解SQL注入,发现很多人登录功能都是同时使用用户输入的username和password,组合到一条sql语句里面,查询判断有无结果来判定是否可登录。例如下面:


  1. <?php  
    $username = $_POST['username'];  
    $password = $_POST['password'];  
    $sql = "select * from user where username='{$username}' and password='{$password}' ";  
    $this->db->query($sql);
    登录后复制

这样很容易在 username参数加入 ‘ or 1=1 -- 注入,虽然这只是示例,但现在很多使用框架,一不注意,最终组合成的语句也是类似这样的。这里不说输入参数过滤、参数绑定,语法分析等常用办法去应对SQL注入,我们可以转变一下判断方法:

  1. <?php  
    $username = $_POST['username'];  
    $password = $_POST['password'];  
    $sql = "select * from user where username='{$username}' ";  
    $data = $this->db->query($sql);  
      
    ......  
      
    if($data['password'] == $password){  
        //密码OK  
    }else{  
        //密码错误  
    }
    登录后复制


这样先查到数据,再用php本身来判断是否匹配密码,是不是解决了问题了?

迅易年度企业管理系统开源完整版
迅易年度企业管理系统开源完整版

系统功能强大、操作便捷并具有高度延续开发的内容与知识管理系统,并可集合系统强大的新闻、产品、下载、人才、留言、搜索引擎优化、等功能模块,为企业部门提供一个简单、易用、开放、可扩展的企业信息门户平台或电子商务运行平台。开发人员为脆弱页面专门设计了防刷新系统,自动阻止恶意访问和攻击;安全检查应用于每一处代码中,每个提交到系统查询语句中的变量都经过过滤,可自动屏蔽恶意攻击代码,从而全面防止SQL注入攻击

迅易年度企业管理系统开源完整版 0
查看详情 迅易年度企业管理系统开源完整版

相关推荐:

推荐10个防止sql注入方法

以上就是PHP和Mysql登录功能防止SQL注入的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号