mysql_real_escape_string

mysql_real_escape_string

mysql_real_escape_string - 转义特殊字符在一个SQL语句中使用的字符串

字符串 mysql_real_escape_string( 字符串 $ unescaped_string [, 资源 $ link_identifier])

.转义特殊字符unescaped_string,考虑到当前字符集的连接,以便它是安全的放置在mysql_query它()。如果二进制数据将被插入,这个函数必须使用。

调用MySQL的库函数mysql_real_escape_string,其中前添加反斜杠下列字符
此函数必须始终(少),用于制造的数据安全例外在发送查询到MySQL

nescaped_string

    该字符串转义。
link_identifier link_identifier

    The MySQL connection. MySQL的连接。 如果链接标识没有指定,最后一个环节开幕mysql_connect()函数假定。如果没有这样的链接被发现,它会尝试创建一个仿佛mysql_connect()函数是不带参数的要求。如果没有发现或连接建立一条E_WARNING级别的错误的产生。

例子1简单mysql_real_escape_string()例子
<?php
// Connect
$link = mysql_connect ( 'mysql_host' , 'mysql_user' , 'mysql_password' )
OR die( mysql_error ());

// Query
$query = sprintf ( "SELECT * FROM users WHERE user='%s' AND password='%s'" ,
mysql_real_escape_string ( $user ),
mysql_real_escape_string ( $password ));
?>
例如#2例如SQL注入攻击
<?php
// Query database to check if there are any matching users
$query = "SELECT * FROM users WHERE user=' { $_POST [ 'username' ]} ' AND password=' { $_POST [ 'password' ]} '" ;
mysql_query ( $query );

// We didn't check $_POST['password'], it could be anything the user wanted! For example:
$_POST [ 'username' ] = 'aidan' ;
$_POST [ 'password' ] = "' OR ''='" ;

// This means the query sent to MySQL would be:
echo $query ;
?>

查询发送到MySQL的:

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''选择*从用户其中user ='艾丹'和password = ''或''=''

这将允许任何人没有一个有效的登录密码登录。

时间: 2024-08-16 16:00:51

mysql_real_escape_string的相关文章

mysql_real_escape_string和addslashes的区别

说明string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] ) 本函数将 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query(). Note: mysql_real_escape_string() 并不转义 和 . Example #1 mysql_real_escape_string() 例子  代码如下 复制代码 <?php $item

php mysql_real_escape_string函数用法与实例教程_php基础

转义特殊字符在unescaped_string,考虑到当前字符的连接设置,以便它在的地方是安全的在mysql_query()它.如果二进制数据要插入,这个函数必须被使用 下列字符受影响: \x00 \n \r \ ' " \x1a 如果成功,则该函数返回被转义的字符串.如果失败,则返回 false. 语法 mysql_real_escape_string(string,connection) 参数 描述 string 必需.规定要转义的字符串. connection 可选.规定 MySQL 连接

php mysql_real_escape_string防sql注入详解

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符.下列字符受影响:  代码如下 复制代码 x00 n r ' " x1a 如果成功,则该函数返回被转义的字符串.如果失败,则返回 false. 易利用下面的这个函数,就可以有效过滤了.  代码如下 复制代码 function safe($s){ //安全过滤函数 if(get_magic_quotes_gpc()){ $s=stripslashes($s); } $s=mysql_real_es

PHP函数addslashes和mysql_real_escape_string的区别_php实例

首先:不要使用mysql_escape_string,它已被弃用,请使用mysql_real_escape_string代替它. mysql_real_escape_string和addslashes的区别在于: 区别一: addslashes不知道任何有关MySQL连接的字符集.如果你给所使用的MySQL连接传递一个包含字节编码之外的其他编码的字符串,它会很愉快地把所有值为字符'.".\和\x00的字节进行转义.如果你正在使用不同于8位和UTF-8的其它字符,这些字节的值不一定全部都是表示字符

addslashes,mysql_real_escape_string和mysql_escape_string介绍

以前还真没有关注过这面的事情.自己在写的时候都是用了一个很简单的函数addslashes() 函数在指定的预定义字符前添加反斜杠. 这些预定义字符是: •单引号 (') •双引号 (") •反斜杠 () •NULL  代码如下 复制代码 <?php function as_array(&$arr_r) {  foreach ($arr_r as &$val) is_array($val) ? as_array($val):$val=addslashes($val);  un

php中array_map() 调用 mysql_real_escape_string 清理数组

用 array_map() 调用 mysql_real_escape_string 清理数组 由于 mysql_real_escape_string 需要 MySQL 数据库连接,因此,在调用 mysql_real_escape_string 之前,必须连接上 MySQL 数据库.    代码如下 复制代码 <?php // 说明:用 array_map() 调用 mysql_real_escape_string 清理数组 // 整理:http://www.111cn.net function

php mysql_real_escape_string函数用法与实例教程

mysql教程_real_escape_string - 转义特殊字符的SQL语句中使用字符串 string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )   mysql_real_escape_string()调用MySQL的库函数mysql_real_escape_string,其中prepends反斜杠以下字符: x00 ñ ṛ,,',"和但X1a. 这个函数必须始终

php mysql_real_escape_string()函数

mysql教程_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符. 下列字符受影响: x00 n r ' " x1a 如果成功,则该函数返回被转义的字符串.如果失败,则返回 false. 语法 mysql_real_escape_string(string,connection)参数 描述 string 必需.规定要转义的字符串. connection 可选.规定 MySQL 连接.如果未规定,则使用上一个连接. 实例 <?php教程   func

php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击

php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击 php防止SQL注入攻击一般有三种方法: 使用mysql_real_escape_string函数 使用addslashes函数 使用mysql bind_param() 本文章向大家详细介绍这三个方法在防止SQL注入攻击中的效果及区别. mysql_real_escape_string防sql注入攻击 mysql_real_escape_string() 函数转义 SQL 语句中