限制对文件夹php的直接访问

限制对文件夹php的直接访问,php,authentication,Php,Authentication,我有一个上传图片的网站。 内容仅可供登录用户查看。(使用非常简单的基于会话的身份验证)。 现在该网站运行良好,但问题是当我通过url栏直接访问images文件夹时,所有图像都变为可用。 我还想限制对文件夹的直接访问,这样会显示一些错误或需要身份验证。 我该怎么做? 谢谢。只需在image文件夹中放置一个空index.php,文件就不会通过Web服务器列出。只需在image文件夹中放置一个空index.php,文件就不会通过Web服务器列出。只需在image文件夹中放置一个空index.php,因

我有一个上传图片的网站。 内容仅可供登录用户查看。(使用非常简单的基于会话的身份验证)。 现在该网站运行良好,但问题是当我通过url栏直接访问images文件夹时,所有图像都变为可用。 我还想限制对文件夹的直接访问,这样会显示一些错误或需要身份验证。 我该怎么做?
谢谢。

只需在image文件夹中放置一个空index.php,文件就不会通过Web服务器列出。

只需在image文件夹中放置一个空index.php,文件就不会通过Web服务器列出。

只需在image文件夹中放置一个空index.php,因此,这些文件不会通过Web服务器列出。

只需在图像文件夹中放置一个空的index.php,就不会通过Web服务器列出这些文件。

将下面的行放入.htaccess文件中

Options -Indexes

在.htaccess文件中放置以下行

Options -Indexes

在.htaccess文件中放置以下行

Options -Indexes

在.htaccess文件中放置以下行

Options -Indexes

如果要阻止直接访问图像,则必须将图像放在文档根目录之外,或阻止Web服务器提供该文件夹中的图像

然后创建一个php文件,检查用户是否登录,并根据参数提供图像

你可以像这样使用它 或者使用url重写将图像调用代理到php脚本

<?php
if($user->check_login()){
    //do some header stuff here like content length and content type
    $image = lookup_image_from_parameter($_REQUEST['image']);
    readfile('path/to/your/image/folder/not/in/webscope/'.$image);
}else{
    die('Access not allowed');
}

如果要阻止直接访问图像,必须将图像放在文档根目录之外,或阻止Web服务器提供该文件夹中的图像

然后创建一个php文件,检查用户是否登录,并根据参数提供图像

你可以像这样使用它 或者使用url重写将图像调用代理到php脚本

<?php
if($user->check_login()){
    //do some header stuff here like content length and content type
    $image = lookup_image_from_parameter($_REQUEST['image']);
    readfile('path/to/your/image/folder/not/in/webscope/'.$image);
}else{
    die('Access not allowed');
}

如果要阻止直接访问图像,必须将图像放在文档根目录之外,或阻止Web服务器提供该文件夹中的图像

然后创建一个php文件,检查用户是否登录,并根据参数提供图像

你可以像这样使用它 或者使用url重写将图像调用代理到php脚本

<?php
if($user->check_login()){
    //do some header stuff here like content length and content type
    $image = lookup_image_from_parameter($_REQUEST['image']);
    readfile('path/to/your/image/folder/not/in/webscope/'.$image);
}else{
    die('Access not allowed');
}

如果要阻止直接访问图像,必须将图像放在文档根目录之外,或阻止Web服务器提供该文件夹中的图像

然后创建一个php文件,检查用户是否登录,并根据参数提供图像

你可以像这样使用它 或者使用url重写将图像调用代理到php脚本

<?php
if($user->check_login()){
    //do some header stuff here like content length and content type
    $image = lookup_image_from_parameter($_REQUEST['image']);
    readfile('path/to/your/image/folder/not/in/webscope/'.$image);
}else{
    die('Access not allowed');
}

带有mod_rewrite的解决方案,可防止直接访问文件

您需要为图像重写规则,请将其放入图像文件夹中的.htaccess文件中:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.+\.jpg)$ img.php?img=$1 [L]
因此,所有jpg请求都将重定向到img.php脚本,该脚本包含您的逻辑:

<?php
//do your check here
$loggedin = true;
if($loggedin){
    $remoteImage = $_GET["img"];
    $imginfo = getimagesize($remoteImage);
    header("Content-type: ".$imginfo['mime']);
    readfile($remoteImage);
}
else{
    echo "You are not logged in!";
}
?>

如果要添加更多图像类型,请将jpg替换为(jpg | gif | png等)。
PHP脚本应该包含一些检查,以防止读取其他文件等。

解决方案使用mod_rewrite防止直接访问文件

您需要为图像重写规则,请将其放入图像文件夹中的.htaccess文件中:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.+\.jpg)$ img.php?img=$1 [L]
因此,所有jpg请求都将重定向到img.php脚本,该脚本包含您的逻辑:

<?php
//do your check here
$loggedin = true;
if($loggedin){
    $remoteImage = $_GET["img"];
    $imginfo = getimagesize($remoteImage);
    header("Content-type: ".$imginfo['mime']);
    readfile($remoteImage);
}
else{
    echo "You are not logged in!";
}
?>

如果要添加更多图像类型,请将jpg替换为(jpg | gif | png等)。
PHP脚本应该包含一些检查,以防止读取其他文件等。

解决方案使用mod_rewrite防止直接访问文件

您需要为图像重写规则,请将其放入图像文件夹中的.htaccess文件中:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.+\.jpg)$ img.php?img=$1 [L]
因此,所有jpg请求都将重定向到img.php脚本,该脚本包含您的逻辑:

<?php
//do your check here
$loggedin = true;
if($loggedin){
    $remoteImage = $_GET["img"];
    $imginfo = getimagesize($remoteImage);
    header("Content-type: ".$imginfo['mime']);
    readfile($remoteImage);
}
else{
    echo "You are not logged in!";
}
?>

如果要添加更多图像类型,请将jpg替换为(jpg | gif | png等)。
PHP脚本应该包含一些检查,以防止读取其他文件等。

解决方案使用mod_rewrite防止直接访问文件

您需要为图像重写规则,请将其放入图像文件夹中的.htaccess文件中:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.+\.jpg)$ img.php?img=$1 [L]
因此,所有jpg请求都将重定向到img.php脚本,该脚本包含您的逻辑:

<?php
//do your check here
$loggedin = true;
if($loggedin){
    $remoteImage = $_GET["img"];
    $imginfo = getimagesize($remoteImage);
    header("Content-type: ".$imginfo['mime']);
    readfile($remoteImage);
}
else{
    echo "You are not logged in!";
}
?>

如果要添加更多图像类型,请将jpg替换为(jpg | gif | png等)。

PHP脚本应包含一些检查,以防止读取其他文件等。

如果有人知道文件名,则不会阻止他们访问文件。谢谢,这是一种解决方案,但如果有人有图像链接,我如何阻止他/她在不登录的情况下查看图像?您可以使用mod_rewrite强制使用php脚本解析图像URL,并检查用户是否登录等。这不会阻止知道文件名的人访问文件。谢谢,这是一种解决方案,但如果有人有图像链接,我如何阻止他/她在不登录的情况下查看图像?您可以使用mod_rewrite强制使用php脚本解析图像URL,并检查用户是否登录等。这不会阻止知道文件名的人访问文件。谢谢,这是一种解决方案,但如果有人有图像链接,我如何阻止他/她在不登录的情况下查看图像?您可以使用mod_rewrite强制使用php脚本解析图像URL,并检查用户是否登录等。这不会阻止知道文件名的人访问文件。谢谢,这是一种解决方案,但如果有人有图像链接,我如何阻止他/她在不登录的情况下查看图像?您可以使用mod_rewrite强制php脚本解析图像URL,并检查用户是否已登录等。htaccess文件应位于图像文件夹中?根文件夹或图像文件夹中。。。如果它在根文件夹中,它将阻止所有没有启动程序文件的文件夹…注意,这只会阻止直接访问文件夹