php - .htaccess 拒绝查看除本地主机以外的所有目录
问题描述
我似乎遇到了一种情况,即 .htaccess 文件能够通过拒绝服务器端 PHP 访问除加载小部件之外的所有内容来成功关闭我的网站。有没有办法防止用户嗅探站点的目录(即查找包含、图像目录等),同时允许服务器上的脚本仍然正确访问它们?如果是这样,我将如何去做?
我尝试关注另一个stackoverflow问题
order deny,allow
deny from all
allow from 127.0.0.1
但它也会产生同样的问题。例如,如果 /img/ 中的 .htaccess 文件包含这些行(并且仅包含这些行),则不会加载页面上的图像。
解决方案
由于您对共享主机的选择有限,首先要指出的是文件系统权限非常重要。如果用户能够利用您的站点并在您的 webroot 内的文件系统上写入或更改文件,那是非常糟糕的。文件系统权限不应允许 Web 进程将文件写入您专门为此目的设置的目录以外的任何目录中。
考虑到这一点,这里有一个解决方案,可以处理像 /img 目录这样的单个目录。
在 /img 目录中创建此 .htaccess 文件:
order allow,deny
<Files ~ "\.(jpg|jpeg|png|gif|bmp)$">
allow from all
</Files>
这将允许访问图像文件的正常功能并禁止访问其他任何内容。
希望您还可以看到此处使用的模式,您将允许的文件扩展名列入白名单。如果需要,您可以将相同的想法用于您拥有的任何其他目录。
推荐阅读
- java - 如何在使用 XSL-FO 生成另一个 PDF 文件时合并一个 PDF 文件?
- git - 在私有存储库中添加公共 github 存储库作为子模块将使子模块存储库成为私有
- javascript - “const”如何影响变量的类型?
- jquery - HTML 设计 - 用 div 替换表格
- django - 如何在 APIView 中设置密码 - Django
- python - 如何在文件路径中使用变量
- php - 在 Laravel 中使用 htaccess 重定向 Cms 页面
- java - spring cloud feign @Requestparam 名称包含符号 []
- javascript - SuiteScript 2.0 生成文件后如何重定向
- android - 如何使用 Google Autocomplete place API 中的代码获取所有机场名称列表