PHP + Mysql 登录功能防止SQL注入的一个办法
2017-09-07 15:42
543 查看
最近在了解SQL注入,发现很多人登录功能都是同时使用用户输入的username和password,组合到一条sql语句里面,查询判断有无结果来判定是否可登录。例如下面:
<?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注入,我们可以转变一下判断方法:
<?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本身来判断是否匹配密码,是不是解决了问题了?
!!!个人遇见,如有不足,欢迎指正。
<?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注入,我们可以转变一下判断方法:
<?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本身来判断是否匹配密码,是不是解决了问题了?
!!!个人遇见,如有不足,欢迎指正。
相关文章推荐
- PHP + Mysql 登录功能防止SQL注入的一个办法
- 留言板v2.0(添加了一个简单登录功能php+mysql)
- php&nbsp;mysql防止sql注入详细说明
- php mysql 安全 防止SQL注入
- php+MySql实现登录系统与输出浏览者信息功能
- php mysql防止sql注入详细说明
- jsp+javaBean+servlet+mysql完整的实现一个登录功能
- 利用php+mysql来做一个功能强大的在线计算器
- XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建 XAMPP 软
- PHP登录环节防止sql注入的方法浅析
- php+MySql实现登录系统与输出浏览者信息功能
- 入门级的一个登录窗口PHP+MYSQL
- 写一个Windows下php+iis+mysql 配置时候不支持mysql的解决办法!!
- PHP登录环节防止sql注入的方法浅析
- 一个极其简单的防止SQL注入的办法(只针对部分有效)转自csdn论坛
- JDCB学习笔记 -- day05 实现一个用户的登录功能及解决SQL注入问题
- 利用php+mysql来做一个功能强大的在线计算器
- php mysql防止sql注入详解
- PHP登录环节防止sql注入实例详解
- php中mysql_real_escape_string+sprintf防止sql注入