有人侵入了我的数据库 - 怎么回事?

问题描述 投票:0回答:7

有人入侵了我的数据库并删除了表。

在我的 PHP 页面中有一个查询,我正在其中使用 mysql_real_escape_string:

$db_host="sql2.netsons.com";
$db_name="xxx";
$username="xxx";
$password="xxx";    

$db_con=mysql_connect($db_host,$username,$password);    

$connection_string=mysql_select_db($db_name);
mysql_connect($db_host,$username,$password);    
mysql_set_charset('utf8',$db_con); 

$email= mysql_real_escape_string($_POST['email']);
$name= mysql_real_escape_string($_POST['name']);
$sex= mysql_real_escape_string($_POST['sex']);    

if($_POST['M']!=""){  $sim = 1;  }else {  $sim = 0;   }

$query = "INSERT INTO `users` (`email`, `name`, `sex`, `M`) VALUES
( '".$email."', '".ucwords(strtolower($name))."', '".$sex."','".$sim."')";    

$res = mysql_query($query) or die("Query fail: " . mysql_error() );

mysql_close($db_con);

并且

register_globals
已禁用

那么,我的数据库是如何被黑客入侵的?

php mysql sql-injection
7个回答
66
投票

mysql_real_escape_string

MySQL 连接。如果未指定链接标识符,则假定为 mysql_connect() 打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就像不带参数调用 mysql_connect() 一样。如果未找到或建立连接,则会生成 E_WARNING 级别错误。

如此处解释:mysql_real_escape_string() 是否完全防止 SQL 注入?

根据您的代码片段,您已连接数据库两次。

$db_con=mysql_connect($db_host,$username,$password);    

$connection_string=mysql_select_db($db_name);
mysql_connect($db_host,$username,$password);    
mysql_set_charset('utf8',$db_con); 

并且您没有提供数据库链接标识符:

$email= mysql_real_escape_string($_POST['email']);
$name= mysql_real_escape_string($_POST['name']);
$sex= mysql_real_escape_string($_POST['sex']); 

因此,mysql_set_charset 对多字节字符提供的实际转义没有影响。


建议

删除第二个
    $_POST
  • 在做
  • mysql_connect($db_host,$username,$password);
  • 时明确添加
    $db_con
    
        

6
投票

然后,只需仔细审核每个候选人请求中的代码,直到确定它:(


4
投票

这里有一些关于锁定 php 代码的文章

http://www.addedbytes.com/writing-secure-php/

致以最诚挚的问候。 阿斯比约恩·莫雷尔


2
投票


1
投票

我唯一能找到的是托管提供商关于 ucwords 的模糊公告:

http://2by2host.com/articles/php-errors-faq/disabled_ucwords/

G


0
投票


-2
投票
https://santoshihacker.godaddysites.com

的软件为您提供支持,确保万无一失。让我们面对现实吧,没有人愿意相信他们的伴侣可能会出轨。但如果您最近注意到一些奇怪的行为,很自然会产生怀疑。在调查过程中保持自由裁量权至关重要。 Santoshi Hacker 提供各种功能和设置,让您可以谨慎监控。但是,必须谨慎行事并遵循 https://santoshihacker.godaddysites.com 秘密监控指南。避免公开讨论您的怀疑或行为,并采取必要措施保护您的隐私和检索到的信息。如果你的妻子真的有外遇,Santoshi Hacker 将消除你对她出轨的怀疑。起来并致电 Santoshi Hacker: 网站:https://santoshihacker.godaddysites.com 电子邮件:santoshihacker@hotmail。 com 总部电子邮件:santoshi@solution4u。 com

© www.soinside.com 2019 - 2024. All rights reserved.