【问题标题】:LAMP - make directory accessible only to certain web pagesLAMP - 使目录只能对某些网页访问
【发布时间】:2016-02-18 19:39:03
【问题描述】:

我正在修改运行 Apache2 的 LAMP 服务器上的网页,想知道是否可以让一个目录只能由您的网页访问,而不能从外部访问?

示例场景:

要保护的目录:dir1 包含图像(jpg、png)

我自己的网页:mypage.html,它从 dir1

调用图像

我的网站:www.myweb.com 包含 dir1mypage.html

目前,可以通过 www.myweb.com/dir1/somefile.jpg 或调用 mypage.html

访问网站内的文件

我希望它只能通过调用 mypage.html 来访问

我尝试了以下方法:

  • 修改 .htaccess 以禁止访问图像类型

    <files "*.jpg">
      deny from all
    </files>
    

(不起作用,因为 mypage.html 也无法访问它)

  • 修改 apache2 配置文件:

    <Directory /var/www/dir1>
       AllowOverride None
       <Limit GET POST OPTIONS>
       Order deny,allow
       Deny from all
       </Limit>
    </Directory>
    

    (这实际上是半工作的,因为它允许我写入目录但不能读取,也许可以修改它以允许来自内部网页的请求通过?)

我想得出结论,有没有办法让 Apache2 只接受访问目录的请求,如果它是您选择的某个 url?

提前致谢。

【问题讨论】:

标签: html apache .htaccess lamp


【解决方案1】:

所以,我决定到目前为止我所采取的方法并没有削减它,并发现你实际上可以调用一个 php 函数,其中

<img src='somefile.php?query=xxx' alt='pic'>

我在 somefile.php 中的哪个位置接受了从上面的查询创建的 img 文件名。

echo file_get_contents($imgresource);

通过从 php 脚本提供图像并阻止此 php 脚本在没有适当凭据、会话、cookie 和 IP 阻止的情况下被调用,有一些安全设置。

所以我想它并没有真正回答完全阻止访问某些 URL 的问题,但它的目的是为了无法从外部访问,因为我已经将目录埋在下面(或上面?)无法从 url 调用且只能从内部脚本调用的 web 根目录。

【讨论】:

  • 如果我知道您使用的是 PHP,我会建议这种方法。但是,您没有将问题标记为 php 或有任何 php 示例。很高兴你找到了可以使用的东西。
  • 对不起。我没有指定 php,因为我将它装箱的最初问题不是脚本特定的。感谢您确认该方法。
猜你喜欢
  • 2012-08-12
  • 2015-06-04
  • 2022-09-27
  • 2013-08-07
  • 2015-05-11
  • 2023-03-13
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
相关资源
最近更新 更多