PHP防止数据库字符串登录SQL注入攻击

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: <?php header("Content-Type:text/html;charset=UTF-8"); // 数据库配置 include_once 'config.php'; // 获得传递参数 $user_name=isset($_request['user_name'])?$_reques.
<?php
header("Content-Type:text/html;charset=UTF-8");
// 数据库配置
include_once 'config.php';
// 获得传递参数
$user_name=isset($_request['user_name'])?$_request['user_name']:'';
$user_password=isset($_request['user_password'])?$_request['user_password']:'';
// 判断是否是非法字符串
// 防止SQL注入
if (empty($user_name)||empty($user_password)||!preg_match("/^[a-zA-Z0-9]{6,}$/", $user_name))
{
die('警告:输入错误!');
}
// 连接数据库
$conn=mysql_connect($Db_Server,$Db_User,$Db_Pwd);
// 判断连接是否成功
if (!$conn)
{
die("不能连接数据库,错误是: " . mysql_error());
}
// 数据库输出编码,应该与你的数据库编码保持一致。建议用UTF-8国际标准编码
mysql_query("set names 'utf8'"); 
// 打开数据库
$db_selected = mysql_select_db($Db_Name, $conn);
// 判断打开是否成功
if (!$db_selected)
{
die ("不能打开数据库,错误是: " . mysql_error());
}
// SQL语句
$sql ="select * from demo where user_name='".addslashes($user_name)."' AND password='".md5($user_password)."'";
// 查询SQL语句
$result = mysql_query($sql,$conn); 
// 判断是否有数据
if (!$result)
{
die("查询失败: " . mysql_error());
}
// 循环读取数据
while($row = mysql_fetch_array($result))
{
// 读数据
echo $row['content'];
}
// 使用完毕关闭数据库连接
mysql_close();
?>
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
11月前
|
PHP C++ 索引
PHP 高效之道:字符串与数组处理的实用技巧
PHP 高效之道:字符串与数组处理的实用技巧
382 83
|
数据库连接 应用服务中间件 PHP
|
11月前
|
存储 JSON PHP
PHP数组键值转换的隐秘陷阱:整数还是字符串?
PHP数组键值转换的隐秘陷阱:整数还是字符串?
312 58
|
11月前
|
安全 PHP 数据库
PHP中的陷阱:字符串与数字比较时,你真的安全吗?
PHP中的陷阱:字符串与数字比较时,你真的安全吗?
|
PHP 开发者
PHP数据验证方法:如何检查一个字符串是否是email格式。
以上就是关于PHP如何检查一个字符串是否是email格式的全部内容。希望你在代码书写旅途中,能找到你的北斗星——简洁、高效、可靠的代码验证方式。让我们共同见证PHP的强大和丰富多彩!
324 16
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
521 16
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
527 25
|
数据库连接 PHP 数据库
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
|
PHP 数据库
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
|
Oracle 关系型数据库 MySQL
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题
本文分析了YashanDB中PHP通过ODBC查询数据时出现的数据截断问题,表现为超过256字节的数据被截断,以及isql工具无法显示超过300字节长度的数据。问题根源在于YashanDB的ODBC驱动仅支持单次查询,且PHP扩展库默认缓冲区限制。解决方案包括改用PHP ODBC扩展库而非PDO_ODBC,以及调整isql代码逻辑以支持循环取数或一次性读取完整数据。文章还提供了具体代码示例和规避方法,适用于23.2.4.14及更早版本。
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题