【问题标题】:PHP code being reported as malwarePHP 代码被报告为恶意软件
【发布时间】:2017-09-12 03:26:47
【问题描述】:

我一直在 localhost 上的网站上工作,并且刚刚尝试将其上传到免费的网络服务器,以便我可以得到一些测试人员,由于某种原因,我的代码被报告为恶意软件并被我的防病毒软件阻止,这意味着我在访问它时除了ERR_CONNECTION_RESET 什么都看不到。你们对为什么这段代码被检测为恶意软件有任何想法吗?

LOGIN.php

<?php
include('classes/db.php');

if (db::maintenance()) {
  die('This site is currently going under maintenance, please check back again shortly.');
}

if (isset($_POST['submit'])) {
  $username = $_POST['username'];
  $password = $_POST['password'];

  if (db::query('SELECT username FROM users WHERE username=:username', array(':username'=>$username))) {
    if (password_verify($password, db::query('SELECT password FROM users WHERE username=:username', array(':username'=>$username))[0]['password'])) {
      echo "Logged in!";
      $cstrong = True;
      $token = bin2hex(openssl_random_pseudo_bytes(64, $cstrong));
      $user_id = db::query('SELECT id FROM users WHERE username=:username', array(':username'=>$username))[0]['id'];
      db::query('INSERT INTO login_tokens VALUES (NULL, :token, :user_id)', array(':token'=>sha1($token), ':user_id'=>$user_id));
      setcookie("SNID", $token, time() + 60 * 60 * 24 * 7, '/', NULL, NULL, TRUE);
      setcookie('SNID_', '1', time() + 60 + 60 * 24 * 3, '/', NULL, NULL, TRUE);
      header('Location: index.php');
    } else {
      echo "Incorrect password";
    }
  } else {
    echo "User not registered!";
  }
}

?>

 <h1>Login to your account</h1>

<form action="login.php" method="post">
  <input type="text" name="username" value="" placeholder="Username"><p />
  <input type="password" name="password" value="" placeholder="Password"><p />
  <input type="submit" name="submit" placeholder="Login"><p />
</form>

DB.php (我把连接改成了假数据,上传到主机的时候改成了正确的数据。)

<?php
class db {
  private static function connect () {
    $conn = new PDO('mysql:host=localhost;dbname=users;,charset=utf8', 'root', '');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    return $conn;
  }

  public static function query ($sql, $params = array()) {
    $statement = self::connect()->prepare($sql);
    $statement->execute($params);

    if (explode(' ', $sql)[0] == 'SELECT') {
     $result = $statement->fetchAll();
     return $result;
    }
  }

  public static function notify ($userid) {
    $notifications = db::query('SELECT forum_members.forum_id, notifications.user_id, notifications.post_id, notifications.forum_id, notifications.post_body, notifications.creation, notifications.type FROM forum_members, notifications WHERE (notifications.forum_id=forum_members.forum_id OR notifications.forum_id=0) AND notifications.user_id=forum_members.user_id ORDER BY notifications.post_id DESC');
    return $notifications;
  }

  public static function maintenance () {
    return false;
  }
}
 ?>

【问题讨论】:

  • 当你可以选择一次并使用下线获得的变量时,为什么要选择3次用户信息
  • 这只是第一个标记之类的东西,以后我会再做一遍,我会改进代码。
  • db.php 中有什么?
  • 检查编辑,添加数据库文件

标签: php login malware malware-detection


【解决方案1】:

您使用哪种类型的地址进入网站? PHP 源代码不会显示给浏览器,所以 PHP 不是问题。 如果您使用主机名(例如.....2cc.brad ....net)输入,那么如果您从 localhost/127.0.0.1 访问它,它将自动被检测为“恶意软件”以确保初学者的安全应该没问题,但是如果你从一个被标记为恶意软件的主机访问它,那么是的。

【讨论】:

    猜你喜欢
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    相关资源
    最近更新 更多