php mysql 过滤

admin3个月前软件教程39

PHP和MySQL的结合,让网站开发越来越便利。但是,我们也要注意在网站开发中,如何避免SQL注入攻击。

SQL注入就是通过思路和计算,往随意输入框输入SQL语句,后台数据库通过SQL语句的运行,就达到了攻击目的,导致数据泄露、遭受伤害的情况。所以,开发者需要认真对待输入框过滤,防止这种情况的发生。

接下来,我们将介绍如何使用PHP和MySQL对数据进行过滤,以避免SQL注入攻击。

1.使用mysql_real_escape_string函数

mysql_real_escape_string是一个可以使用的函数,可以快速的对数据进行了过滤。

<?php$mysqli = new mysqli("localhost", "user", "password", "db");$username = $_POST['username'];$password = $_POST['password'];$username = $mysqli->real_escape_string($username);$password = $mysqli->real_escape_string($password);$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";$res = $mysqli->query($sql);while ($row = $res->fetch_assoc()) {echo $row['username'] . '<br />';}?>

上面的代码使用mysql_real_escape_string函数,将用户名和密码过滤,确保它们是可以在查询中使用的数据。

2.使用prepared语句

使用prepared语句来预编译查询,可以避免SQL注入攻击。prepared语句需要使用参数绑定操作,这样可以在不将可能会破坏查询的任何含有特殊字符的数据中定义其中的内容。

<?php$mysqli = new mysqli("localhost", "user", "password", "db");$username = $_POST['username'];$password = $_POST['password'];$stmt = $mysqli->prepare("SELECT * FROM users WHERE username=? AND password=?");$stmt->bind_param('ss', $username, $password);$stmt->execute();while ($row = $stmt->fetch()) {echo $row['username'] . '<br />';}?>

在上述示例中,我们使用了prepare函数来创建一个新的查询,然后使用bind_param函数来指定每个查询的参数。最后,执行查询并使用fetch函数在结果集中循环遍历输出结果。

3.使用filter_input函数

使用filter_input函数过滤输入数据,将可以防止用户输入不受支持的数据。这种方法可以为整个应用程序提供一种更加统一的数据管理方式。

<?php$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);$mysqli = new mysqli("localhost", "user", "password", "db");$stmt = $mysqli->prepare("SELECT * FROM users WHERE username=? AND password=?");$stmt->bind_param('ss', $username, $password);$stmt->execute();while ($row = $res->fetch_assoc()) {echo $row['username'] . '<br />';}?>

上述代码中,我们使用filter_input函数,对输入数据进行过滤。然后使用prepare函数、bind_param函数和execute函数对数据进行查询。

总的来说,使用PHP和MySQL对数据进行过滤,是使我们避免SQL注入攻击的一种有效方式。开发者只需要根据需要选择合适的过滤方法即可。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

网易云音乐怎么取消收藏歌单

网易云音乐取消收藏歌单的方法:1、首先打开网易云。2、点击左上角“我的”。3、找的“收藏歌单”并点击。4、再点击右边的三个点。5、点击歌单管理。6、选择要删除的歌单。7、再点击屏幕下方的删除即可。网易...

APP开发价格受哪些因素影响

由于移动互联网的飞速开展,使得许多企业都投入到APP开发中去,这也造就了APP开发商场的火爆,然而企业在挑选不同的APP开发公司时,其给出的开发价格基本上都是不相同的,有的APP开发公司只需几万,有的...

拼多多产品下架再上有影响吗

拼多多商品排名是受权重影响的,商品下架之后再重新上架,排名肯定是会降低的。商品排名低,展现量少,被买家搜索到的概率就小,这样也就影响了商品的流量。拼多多是国内主流的手机购物APP,是一家专注于C2B拼...

爱奇艺在ipad上不是全屏

可能是你下载的是手机版的爱奇艺客户端,重新下载ipad适配版的就能满屏观看,在视频播放的右下角有全屏按钮。也可能是软件bug,可以下载重装一下试试。爱奇艺标志设计理念为“爱奇艺,屏生活“,以“屏”为核...

宠物APP开发要注意哪些问题

宠物走进了很多人的生活中,饲养宠物的人群也是在不断增加。在现在的宠物消费市场中也出现了各种的宠物电商APP。宠物电商APP开发这些功能不可少,现在的APP种类多,在激烈的市场中,通过打造独特丰富的功能...

保险APP开发有什么功能

随着智能手机的普及以及移动互联网快速发展,各个行业都开始开发APP来抢占移动市场,保险行业也是如此。各大保险公司纷纷推出自己的保险APP,用户可以不受时间、空间限制自由投保。通过保险APP,用户还可以...