php mysql 过滤

admin3个月前软件教程35

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、如果网易邮箱通行证没有绑定关联手机,那么可以绑定一个手机号码,这样就可以重...

ajax同步 实现timeout

AJAX(Asynchronous JavaScript and XML)是一种用于在Web应用程序中创建交互式用户界面的技术,它可以在不重新加载整个页面的情况下,与服务器进行异步通信。通常情况下,A...

旅游攻略APP有哪些特点

每逢节假日黄金周,各种的旅游景点都是人山人海。旅游出行成为了现在人们的生活方式之一。旅游攻略的准备是旅游前必不可少,做好攻略,旅游会事半功倍。旅游攻略APP开发将会为人们打造一个旅游攻略,制作以及是旅...

拼多多店铺有几种类型

拼多多店铺类型分为三种:个人店铺,企业店铺,个体工商户店铺。拼多多是上海寻梦信息技术有限公司于2015年9月上线的一家专注于C2B拼团的第三方社交电商平台。用户通过发起和朋友、家人、邻居等的拼团,以更...

美团足迹删除不了

美团足迹删除不了可能是网络连接不佳或者手机卡顿,有所延迟,软件未响应等硬件问题引起的,建议更换网络或重启手机试试。美团网是2010年3月4日成立的团购网站,总部位于北京朝阳区,服务覆盖包括美食、电影、...