当前位置: 首页 > 面试题库 >

ADOdb中的SQL注入和一般网站安全性

花阳秋
2023-03-14
问题内容

我已经读了很多书,但仍然不了解100%某些SQL注入是如何发生的!

我想从认识的人那里看到基于我的示例的SQL注入的具体示例,因此可以对其进行复制,测试和修复。我试图用SQL注入我的代码,但不能,所以我希望有人证明我的能力!

1.我对吗,SQL注入只能通过POST或GET方法进行,这意味着在网站上它应该是发布形式,例如“注册或搜索”或“ search.php?tags =
love”之类的查询吗?

说这是否可能注入具有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);

请帮助那些对此主题感到随意但使用具体示例的人。

在此先感谢,
伊利亚


问题答案:

用户输入
的编码不正确时,就会发生SQL注入攻击。典型地,所述用户输入是一些数据的用户和她的查询时,在值即发送$_GET$_POST$_COOKIE$_REQUEST,或$_SERVER阵列。但是,用户输入也可以来自各种其他来源,例如套接字,远程网站,文件等。因此,您应该
将除常量 (例如'foobar')以外的 所有内容都 视为用户输入

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

请注意,忘记打给您很容易mysql_real_escape_string-对于熟练的攻击者来说,一次就足够了!因此,您可能希望将现代的PDO与预准备语句一起使用,而不要使用adodb。



 类似资料:
  • Fuel 非常重视安全性,并引此採取了以下对策,来确保你 web 应用程序的安全: 编码输出 CSRF 保护 过滤 XSS 过滤输入 SQL 注入 预设情况下,Fuel 不在输入时过滤 POST 和 GET 变数,并且在输出编码所有事物。 当使用 URI 分段时,Fuel 也编码 URI,以防止讨厌的惊喜,并转义要进入资料库的所有事物。 本页面说明 Fuel 提供的一般安全性对策,Security

  • 注入技术包括使用应用程序的输入字段注入SQL查询或命令。 Web应用程序SQL注入 成功的SQL注入可以读取,修改数据库中的敏感数据,还可以从数据库中删除数据。它还使黑客能够对数据库执行管理操作,例如:关闭DBMS/删除数据库。 我们通过下面一个简单的图表了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。 威胁代理 - 匿名外部攻击者以及拥有自己帐户的用户可能会尝试从其他人那里窃取帐

  • 在本章中,我们将研究如何保护Drupal站点。 本章为站点管理员指定安全配置建议,并警告管理员如何保护站点。 有许多贡献的模块可以帮助您进行安全配置,其中Security Review模块可以自动测试使您的站点不安全的错误。 您可以通过发送有关该问题的电子邮件直接向Drupal core, contrib或Drupal.org报告安全问题。 安全团队将在项目维护人员的帮助下帮助解决您的问题。 通过

  • 接下来的步骤: 我已经使用代理启动了jeter,否则我不会记录任何东西,使用:C:\apache-jmetam-2.13\apache-jmetam-2.13\bin启动 局域网设置: 只使用代理服务器为您的局域网被选中,其他一切都在局域网设置中未被选中。 地址:localhost端口:8080 jeter网站的安全证书。

  • 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL安全问题 本节描述一些常见的需要注意的安全问题,以及一些可以使你的MySQL安装更加安全以防止黑客和误用的措施。关于MySQL用于设置用户账户并检查数据库访问的访问控制系统的具体信息,参见5.7节,“MySQL访问权限系统”。 5.6.