通过端口80在Internet上传输我的DataBase

时间:2013-01-15 07:35:32

标签: sql sql-injection

我正在阅读一篇关于Sql注入的文章,作者在文章中提到过,如果执行了sql注入攻击,攻击者可以通过端口80传输整个数据库我的问题是如何通过http端口传输数据库是有没有软件可以做到?如何通过劫持我的数据库来保护自己

http://msdn.microsoft.com/en-us/magazine/hh580736.aspx

通过端口80传输整个数据库

3 个答案:

答案 0 :(得分:0)

SQL注入意味着您的代码存在缺陷 - 通常是您的Web代码,它解释了端口80 - 允许第三方在您的数据库上运行他们想要的任何SQL命令。如果你对此保持开放态度,那么就无法阻止他们做任何他们想做的事情。

避免它的方法取决于你编程的特定语言(Python,Ruby,Java等),但两个要点是你要正确地“清理你的输入 - 这是确保字符被正确转义所以例如,某人不能使用分号并造成严重破坏 - 并且参数化您的查询。这意味着当您编写SQL查询时,您使用参数进行用户定义的输入,然后安全地填充这些参数。在Perl中,您将使用:

$sth = $dbh->prepare("SELECT * FROM TABLE WHERE id = ?");

$sth->execute($id);

将它们视为占位符。

再次确切的方法取决于您选择的语言。

当你明白这一点时,你就在路上:http://xkcd.com/327/

答案 1 :(得分:0)

采取这些措施绝对毫无意义。

这只是一个漏洞允许的数十亿次可能攻击中的一个。因此,它就像在筛子上填充漏洞 - 一个辛苦而无用的工作,好像只留下一个漏洞 - 它将被使用。

而不仅仅是保护您的网站免受SQL注入。

答案 2 :(得分:-1)

我的猜测是,如果你可以注入某个地方,那么他们可以通过以下步骤来实现:

  
      
  1. 在SQL中备份数据库或将所有数据编写成文件
  2.   
  3. 使用某些DBMS功能将该文件复制到Web服务器以便暴露给Internet,如SQL Server中的xp_cmdshell
  4.   
  5. 通过您的网络服务器下载
  6.