在ADOdb的SQL注入和一般的网站安全(SQL injections in ADOdb and g

2019-06-17 17:37发布

我已经做了相当多读,还是不明白100%某些SQL注入的是如何发生的!

我想看到的,从那些谁知道,根据我的例子SQL注入的具体实例,因此它可以被复制,测试和固定。 我试图SQL注入我的代码,并不能,所以我想一个人来证明我其他的!

1.Am我正确的SQL注入只能用POST发生或GET方法,也就是说,该网站上的应该是交形式,如“注册或搜索”或查询像“的search.php?标签=爱”?

话说这可能注入下面的代码有POST方法?

$name     = trim($_POST['username']);
$mail     = trim($_POST['email']);
$password = trim($_POST['password ']);

   if ($errors == "false") {
    $sql = 
        "INSERT INTO 
           clients 
         SET 
           name='" . mysql_real_escape_string($name) . "',
           mail='" . mysql_real_escape_string($mail) . "', 
           password='" . mysql_real_escape_string(sha1($password)) . "'";
           $connection->execute($sql);

    }

其他2.一个具有GET方法: rate.php?like&videoID=250&userID=30

$sql = 
    "SELECT 
        videoID 
     FROM 
        likes 
     WHERE 
        videoID = '" .mysql_real_escape_string($videoID). "' AND UID = '" .mysql_real_escape_string($userID). "' LIMIT 1";
        $connection->execute($sql);

请帮助那些随时与问题,但用具体的例子。

提前致谢,
伊利亚

Answer 1:

用户输入的编码错误的SQL注入攻击的发生。 典型地,所述用户输入是一些数据的用户和她的查询发送,即,值在$_GET$_POST$_COOKIE$_REQUEST ,或$_SERVER阵列。 然而,用户输入也可以来自各种其他来源,如插座,远程网站,文件,等等。因此,你应该真心对待一切,但常数 (如'foobar'作为用户输入

在您发布的代码, mysql_real_escape_string用于编码(=逃逸)的用户输入。 该代码是正确的,因此,即不允许任何SQL注入攻击。

请注意,这是非常容易的号召忘记mysql_real_escape_string -和一个时间是足够熟练的攻击者! 因此,您可能需要使用现代PDO与预处理语句代替ADODB。



Answer 2:

我已经彻底对这个问题最近调查,并想与他人挺有意思的材料共享,从而,使我的问题更加完整和启发大家。

  • 由约翰·内贝尔防止SQL注入与PHP
  • 安全角-由克里斯·夏夫利特SQL注入
  • 亚历山大Andonov的意外的SQL注入
  • Mysql_real_escape_string()与由IIIa的Alshanetsky准备语句
  • SQL注入攻击和防御的萨加尔·乔希
  • SQL注入攻击由吉姆·怀特黑德教授
  • 和addslashes()与mysql_real_escape_string()由克里斯·夏夫利特
  • 什么是由Joel Spolsky的SQL注入错误

  • MySQL的- SQL注入预防
  • SQL注入演练
  • SQL注入小抄
  • 在PHP和库MySQLi预处理语句



从YouTube

  • SQL注入神话与谬误:由Bill Karwin防御的最佳实践
  • PHP教程:安全- SQL注入
  • 如何在SQL进样与Backtrack5 RC1 SQLMAP

维基百科

  • 维基百科- SQL注入
  • 维基百科- SQL

从OWASP

  • SQL注入
  • 指南SQL注入
  • OWASP -避免SQL注入
  • SQL注入预防小抄
  • 测试SQL注入

从PHP手册

  • SQL注入
  • PDO类-预处理语句和存储过程
  • MySQL的改进的扩展
  • mysql_real_escape_string()

从微软和甲骨文

  • 什么是正确的方法,以防止在PHP脚本由微软SQL注入
  • 停止SQL注入攻击,才由微软停止你
  • 防御由Oracle SQL注入攻击

堆栈溢出

  • 如何防止在PHP中SQL注入?
  • 如何从“鲍比表” XKCD漫画作品的SQL注入?
  • https://stackoverflow.com/questions/1973/what-is-the-best-way-to-avoid-sql-injection-attacks
  • 什么是SQL注入?
  • SQL注入的INSERT
  • 如何防止SQL注入这个功能呢?
  • 是参数真是够防止SQL注入?
  • SQL注入今天有风险吗?
  • https://stackoverflow.com/questions/936254/sql-injection
  • SQL注入道德黑客
  • 此代码是否阻止SQL注入?

SQL注入扫描器

  • 排名前15位的SQL注入扫描器
  • Netsparker社区版,免费SQL注入扫描仪及扫描XSS


文章来源: SQL injections in ADOdb and general website security