PHP mysql_real_escape_string() 函数
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。
mysql_real_escape_string(string,connection)
例子一:
<?php $con = mysql_connect("localhost", "hello", "321"); if (!$con){die('Could not connect: ' . mysql_error());}// 获得用户名和密码的代码// 转义用户名和密码,以便在 SQL 中使用 $user = mysql_real_escape_string($user); $pwd = mysql_real_escape_string($pwd);$sql = "SELECT * FROM users WHERE user='" . $user . "' AND password='" . $pwd . "'" // 更多代码 mysql_close($con); ?>
例子二:
数据库攻击。本例演示如果我们不对用户名和密码应用 mysql_real_escape_string() 函数会发生什么:
<?php $con = mysql_connect("localhost", "hello", "321"); if (!$con){die('Could not connect: ' . mysql_error());}$sql = "SELECT * FROM users WHERE user='{$_POST['user']}' AND password='{$_POST['pwd']}'"; mysql_query($sql);// 不检查用户名和密码 // 可以是用户输入的任何内容,比如: $_POST['user'] = 'john'; $_POST['pwd'] = "' OR ''='";// 一些代码... mysql_close($con); ?>
那么 SQL 查询会成为这样:
SELECT * FROM users WHERE user='john' AND password='' OR ''=''
这意味着任何用户无需输入合法的密码即可登陆。
例子三:
预防数据库攻击的正确做法:
<?php function check_input($value) { // 去除斜杠 if (get_magic_quotes_gpc()){$value = stripslashes($value);} // 如果不是数字则加引号 if (!is_numeric($value)){$value = "'" . mysql_real_escape_string($value) . "'";} return $value; };">//connect $con = mysql_connect("localhost", "hello", "321"); if (!$con){die('Could not connect: ' . mysql_error());}// 进行安全的 SQL $user = check_input($_POST['user']); $pwd = check_input($_POST['pwd']); $sql = "SELECT * FROM users WHERE user=$user AND password=$pwd"; mysql_query($sql);mysql_close($con); ?>
PHP mysql_real_escape_string() 函数相关推荐
- PHP mysql_real_escape_string() 函数防止数据库攻击
PHP mysql_real_escape_string() 函数 PHP MySQL 函数 定义和用法 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的 ...
- mysql real escape,mysql_real_escape_string()函数
mysql_real_escape_string()函数 mysql_real_escape_string()函数用于转义SQL语句中的特殊字符,该函数的语法格式如下: string mysql_re ...
- php5 函数,2017PHP5函数大全
2017PHP5函数大全 stristr() 函数查找字符串在另一个字符串中第一次出现的位置. stripos() 函数返回字符串在另一个字符串中第一次出现的位置. stripslashes() 函数 ...
- 今天学到的几个函数【二】
1,sprintf()语法类似于C语言中的printf(). 2,mysql_fetch_assoc($result)是一种面向过程方法,将结果集合中每一行以数组形式返回. mysql_num_row ...
- php中文切齿,PHP 各种函数
usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_unti ...
- php 转义字符处理,PHP转义与反转义字符串函数详解
在PHP语言中,字符串的转义与反转义是可以使用PHP提供的自有函数addslashes()函数和stripslashes()函数来实现. 1. addslashes()函数 addslashes() ...
- php preg replace中文,php preg_replace函数用法
php preg_replace函数用法 发布于 2015-01-05 13:34:19 | 179 次阅读 | 评论: 0 | 来源: PHPERZ PHP开源脚本语言PHP(外文名: Hypert ...
- thinkphp5常用函数汇总_(thinkPHP)PHP常用函数大全
usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_unti ...
- php函数库快速记忆法_史上最全的php函数大全
定义了一下方法,具体用法可查百度 usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID ...
最新文章
- 你还在用GDB调试程序吗?
- mxnet symbol图的 变量 shape
- JAVA关于父亲节的代码_关于父亲节的经典语录
- 深圳农村商业银行转账显示服务器无响应,深圳农村商业银行
- UI5 repository mapping and Component-preload.js UI5RepositoryPathMapping.xml
- python数据分析与展示 pdf课件_python数据分析与展示 课件 相关实例(示例源码)下载 - 好例子网...
- EasyCriteria已演变为uaiCriteria。 新名称和更多功能
- sci translate好用吗_228个学科分类对应12000+本SCI和SSCI期刊,总有你要的那款!
- 嵌入式linux 配置usb otg,嵌入式linux系统环境下USB设备的驱动实现
- noip2017初赛的一些知识点
- router锚点和html锚点,react-router 环境使用锚点的方法
- CentOS7中MongoDB备份与恢复,配置远程访问
- 设计模式学习笔记(目录篇)
- HDU 4927 大数运算
- 地域和地方的区别_都是大米做的有什么区别?不少人被难倒,米线米粉差别还不少...
- 讨老婆之前要记熟的十句话
- 凸优化有关的数值线性代数知识三:LU Cholesky和LDL因式分解
- 拓端tecdat|python图工具中基于随机块模型动态网络社团检测网络图
- Sentinel-2数据下载方法
- 二级下拉菜单布局(纵向、横向)