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() 函数相关推荐

  1. PHP mysql_real_escape_string() 函数防止数据库攻击

    PHP mysql_real_escape_string() 函数 PHP MySQL 函数 定义和用法 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的 ...

  2. mysql real escape,mysql_real_escape_string()函数

    mysql_real_escape_string()函数 mysql_real_escape_string()函数用于转义SQL语句中的特殊字符,该函数的语法格式如下: string mysql_re ...

  3. php5 函数,2017PHP5函数大全

    2017PHP5函数大全 stristr() 函数查找字符串在另一个字符串中第一次出现的位置. stripos() 函数返回字符串在另一个字符串中第一次出现的位置. stripslashes() 函数 ...

  4. 今天学到的几个函数【二】

    1,sprintf()语法类似于C语言中的printf(). 2,mysql_fetch_assoc($result)是一种面向过程方法,将结果集合中每一行以数组形式返回. mysql_num_row ...

  5. php中文切齿,PHP 各种函数

    usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_unti ...

  6. php 转义字符处理,PHP转义与反转义字符串函数详解

    在PHP语言中,字符串的转义与反转义是可以使用PHP提供的自有函数addslashes()函数和stripslashes()函数来实现. 1. addslashes()函数 addslashes() ...

  7. php preg replace中文,php preg_replace函数用法

    php preg_replace函数用法 发布于 2015-01-05 13:34:19 | 179 次阅读 | 评论: 0 | 来源: PHPERZ PHP开源脚本语言PHP(外文名: Hypert ...

  8. thinkphp5常用函数汇总_(thinkPHP)PHP常用函数大全

    usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_unti ...

  9. php函数库快速记忆法_史上最全的php函数大全

    定义了一下方法,具体用法可查百度 usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID ...

最新文章

  1. 你还在用GDB调试程序吗?
  2. mxnet symbol图的 变量 shape
  3. JAVA关于父亲节的代码_关于父亲节的经典语录
  4. 深圳农村商业银行转账显示服务器无响应,深圳农村商业银行
  5. UI5 repository mapping and Component-preload.js UI5RepositoryPathMapping.xml
  6. python数据分析与展示 pdf课件_python数据分析与展示 课件 相关实例(示例源码)下载 - 好例子网...
  7. EasyCriteria已演变为uaiCriteria。 新名称和更多功能
  8. sci translate好用吗_228个学科分类对应12000+本SCI和SSCI期刊,总有你要的那款!
  9. 嵌入式linux 配置usb otg,嵌入式linux系统环境下USB设备的驱动实现
  10. noip2017初赛的一些知识点
  11. router锚点和html锚点,react-router 环境使用锚点的方法
  12. CentOS7中MongoDB备份与恢复,配置远程访问
  13. 设计模式学习笔记(目录篇)
  14. HDU 4927 大数运算
  15. 地域和地方的区别_都是大米做的有什么区别?不少人被难倒,米线米粉差别还不少...
  16. 讨老婆之前要记熟的十句话
  17. 凸优化有关的数值线性代数知识三:LU Cholesky和LDL因式分解
  18. 拓端tecdat|python图工具中基于随机块模型动态网络社团检测网络图
  19. Sentinel-2数据下载方法
  20. 二级下拉菜单布局(纵向、横向)

热门文章

  1. web前端常识之浏览器原理
  2. 开箱即用的VScode C++环境
  3. Netbeans and Remote Host for C/C++ Developing
  4. 第一次冲刺-个人工作总结01
  5. poj 2892---Tunnel Warfare(线段树单点更新、区间合并)
  6. Reveal:分析iOS UI该武器
  7. Spring MVC 学习 之 - 拦截器
  8. 张艾迪(创始人): 梦想与未来
  9. Leetcode OJ: Remove Duplicates from Sorted Array I/II
  10. c# 写入xml 怪异的事情