我怎样才能提高这个PHP代码的安全性?

时间:2017-06-01 11:17:03

标签: php sql sql-injection

我已经创建了PHP代码:

<?php

  include("../config.php");

  if(!isset($_COOKIE["sessionid"])) {
      header("location:../error_pages/403.php");
  } else {
      $value = $_COOKIE["sessionid"];
      $query = "SELECT * FROM users WHERE sessionid = ?";

      $stmt = $conn->prepare($query);
      $stmt->bind_param("s",$value);
      $stmt->execute();
      $result = $stmt->get_result();

      $rowcount = $result->num_rows;
      if ($rowcount != 1 ) {
          header("location:../error_pages/403.php");
      } else {
          $file = "/path/to/file/";
          header('Content-Description: File Transfer');
          header('Content-Disposition: attachment; filename='.basename("File_Name"));
          ob_clean();
          flush();
          readfile($file);
      }
  };
?>

我想知道是否有一种方法可以操纵sessionid cookie以允许SQL注入。以及此下载是否安全。该文件未存储在可公开访问的文件夹中。

为了防止会话窃取我只通过TLS服务登录页面,是否有其他方法会被盗?

1 个答案:

答案 0 :(得分:1)

通过使用查询参数,您可以安全地进行SQL注入。

您的代码可能容易受到会话劫持的攻击。以下是一些提示和资源: