黑客如何攻击网站?

时间:2012-04-12 14:03:24

标签: php

所以基本上,几天前,我的一个网站客户来到我面前,告诉我他们的数据库和网站遭到黑客入侵(黑客以某种方式从数据库中窃取了md5哈希密码),登录管理面板,并更改了数据。嗯,是的,我在1年半前创建了这个页面,所以我当时不知道更好hash或者盐。无论如何,他们如何破解数据库?基本上,是否有任何保护,或者他们使用任何类型的JavaScript代码,我不应该允许加载,或其他什么?

希望你能帮助我解决这个问题,这样我就可以创建更多受保护的网站。

这是该网站以前的登录代码。根据请求添加 -

  public function loginUser($username, $password) {
    if(isset($_POST['login'])) {
      if($username != '' && $password != '') {
        $sql = "SELECT * FROM `users` WHERE `username` = '".$username."' AND `password` = '".$password."'";
        $q = mysql_query($sql);
        $row = mysql_fetch_array($q);
        if(mysql_num_rows($q) > 0) {
          if($row['level'] == 'admin') {
            $_SESSION['user_level'] = 'admin';
          }
          else {
            $_SESSION['user_level'] = 'normal';
          }
          $_SESSION['logged_in'] = 1;
          header('location: account.php');
        } 
        else {
          header('location: error2.php');
          // Return to page and show error
        }
      }
      else {
        header('location: error1.php');
        // Show error, when people have empty fields entered
      }
    }

2 个答案:

答案 0 :(得分:1)

如果没有更多信息,就不可能肯定地说,但最可能的情况是你的应用程序容易受到SQL injection的攻击,这使攻击者能够让网站显示数据库的内容。另一种可能性是directory traversal attack允许他们直接下载数据库文件。

由于MD5现在完全被打破了(无论你是否使用盐,或者MD5不再使用盐),其余的都很简单。

答案 1 :(得分:0)

您应该阅读有关SQL注入的信息(也许这就是他们如何获取数据库中的信息)。

然后你应该看看XSS。

您要做的第一件事就是验证每一条输入,一切!

针对SQLi,您应该使用预准备语句。

对于XSS,你应该对所有内容进行编码!

但是,嘿,不用担心,你可以用Google搜索这一切!