【问题标题】:Prevent URL access to files on website阻止 URL 访问网站上的文件
【发布时间】:2014-01-14 07:26:46
【问题描述】:

我正在使用自己的 CMS 创建网站。我的问题是我可以通过浏览器中的 URL 访问某些文件。

我试图通过.htaccess 阻止它,但是当我这样做时,它也会阻止我的函数工作,因为它们被阻止了。

有人知道我的问题的解决方案吗?

【问题讨论】:

  • “我试图通过 .htaccess 阻止它,但是当我这样做时,它也会阻止我的功能工作,因为它们被阻止了。” 你说你想阻止对这些文件的访问,然后抱怨他们被阻止了?
  • 他想避免人们直接访问它,但应该允许服务器访问他们。
  • 但是当您加载页面,查看嵌入图像或单击页面上的链接时,仍然是您在加载这些文件,服务器不在t 加载任何东西。如果您想阻止对这些文件的访问被链接到其他地方,那么您需要检查可能被欺骗的引用者,因此不能保证您会阻止所有内容。

标签: php .htaccess url content-management-system


【解决方案1】:

您的函数是在服务器端脚本还是客户端脚本中?

如果它们是服务器端的,您可以通过将文件放在不需要通过 HTTP 访问的目录中,然后在该目录的 htaccess 文件中放置 deny from all 指令来阻止对文件的 HTTP 访问。

如果它们是客户端,那么您不能阻止对它们的访问,并且脚本仍然可以工作。浏览器正在执行脚本,它需要访问这些文件。你可以做一些骇人听闻的事情,比如拒绝提供文件,除非存在特定的引用 URL,但我建议不要这样做,因为它可能会导致可用性、缓存和搜索引擎出现问题。

【讨论】:

  • 我最初没有看到这个问题被标记为 PHP,所以服务器端部分是适用的。我将离开客户端部分,因为认识到这种区别仍然很重要。
【解决方案2】:

在.htaccess末尾添加一行

      Options All -Indexes

或使用

<FilesMatch "*\.(css|js|png)$">
 Order Allow,Deny
 Allow from all
</FilesMatch>

【讨论】:

  • 这只会禁用目录列表,不会阻止文件访问。
  • 使用 Order Allow, Deny Allow from all
猜你喜欢
  • 2012-01-24
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
  • 2018-05-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
相关资源
最近更新 更多