设为首页 加入收藏

TOP

mysql_real_escape_string
2011-06-12 21:27:59 来源: 作者: 【 】 浏览:66次 评论:0

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 = ''或''=''

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

您看到此篇文章时的感受是:
Tags: 责任编辑:administrator
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇SQL Group by和Having 下一篇mysql 全文搜索fulltext

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

相关栏目

最新文章

图片主题

热门文章

推荐文章

相关文章

广告位