• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php 如何做数据库攻击(如:SQL注入)_php

php 搞代码 7年前 (2018-06-21) 186次浏览 已收录 0个评论
文章目录[隐藏]

php mysql_real_escape_string() 函数

PHP MySQL 函数

定义和用法

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:

/x00/n/r/'”/x1a

如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。

语法

mysql_real_escape_string(string,connection)
参数 描述
string 必需。规定要转义的字符串。
connection 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。

说明

本函数将 string 中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于 mysql_query()。

提示和注释

提示:可使用本函数来预防数据库攻击。

例子

例子 1

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); ?>

例子 2

数据库攻击。本例演示如果我们不对用户名和密码应用 mysql_real_escape_string() 函数会发生什么:

那么 SQL 查询会成为这样:

SELECT * FROM users WHERE user='john' AND password='' OR ''=''

这意味着任何用户无需输入合法的密码即可登陆。

例子 3

预防数据库攻击的正确做法:

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; }  $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 如何做数据库攻击(如:SQL注入)_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php 如何做数据库攻击(如:SQL注入)_php

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址