【问题标题】:.htaccess to restrict access from all except one specific url.htaccess 限制除一个特定 url 之外的所有访问
【发布时间】:2012-10-13 22:31:05
【问题描述】:

我正在使用会员脚本来允许一群人访问私人文件。问题是任何知道文件链接的人都可以轻松绕过成员脚本并直接访问文件。我的目标是防止通过http://domain.com/folder1/folder2/index.php 直接访问URL,并且只接受来自http://domain.com/folder1/file_with_link_to_index.php 的访问。除非我可以阻止人们输入文件位置的 url,否则成员资格脚本是无用的。

我什至开始理解 Apache 都很难,但我试图做的是使用“全部拒绝”,然后使用“来自http://folder1/file_with_link_to_index.php 的允许”。因此只能通过“file_with_link~”访问文件。它没有用。我仍然能够将文件的 url 粘贴到浏览器中并访问该目录。

我在 StackO 上发现了类似的问题,但没有足够的经验来理解和实际提取与我的问题相似的小块并实际使用它们。这可能很简单,但我对试图弄清楚这一点感到非常沮丧,以至于我看不到它。

这是我尝试使用的一个简单示例:

拒绝除此处指明的以外的所有内容

<Limit GET POST PUT>
 order deny,allow
 deny from all
 allow from 12.345.67.890
 allow from http://domain.com/fold1/LINKING_FILE/program_index.php
</Limit>

我很确定我在编写域的方式上失败了,也许这就是它不起作用的原因?

【问题讨论】:

  • 链接示例并提出问题可能是更好的方法。

标签: apache .htaccess


【解决方案1】:

我会使用另一种方法来解决这个问题,而不是通过 htaccess。将文件放在公共网络无法访问的目录中,然后使用您的会员 php 脚本检索它们。

【讨论】:

  • 谢谢,我遇到了这个答案,但这并不像移动几个文件那么容易。我正在尝试保护 4 个不同程序/应用程序和一个下载文件夹的索引文件(登录页面),以便在没有先由成员文件处理的情况下,任何人都无法登录这些程序/应用程序。
  • jTheMan,你是对的。 PHP 是解决此问题的更好选择。
【解决方案2】:

jTheMan 是对的。有一种更好的方法可以使用 PHP 来解决这个问题。我对我的问题的解决方法如下,以防它对其他人有用。唯一很棒的补充是让下面的代码只允许从一个 IP 直接访问 URL,比如我自己的 :0)

我将以下文件添加到“head”或“index”或每个应用程序中首先调用的页面的最顶部:

//Begin refuse direct URL Connections
$refering=parse_url($_SERVER['HTTP_REFERER']);
if($refering['host']==$_SERVER['HTTP_HOST']){
   echo "";
} else {
   header("Location: http://www.yourdomain.com");
    exit();
}
//End refuse direct URL Connections

谢谢!

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2013-04-28
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    相关资源
    最近更新 更多