我已经创建了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服务登录页面,是否有其他方法会被盗?
答案 0 :(得分:1)
通过使用查询参数,您可以安全地进行SQL注入。
您的代码可能容易受到会话劫持的攻击。以下是一些提示和资源: