【发布时间】:2016-03-09 06:03:05
【问题描述】:
当我浏览我的网站并检查谷歌浏览器中的元素时,通过选择源选项卡,我可以获得我网站的所有文件夹的列表。事实上,我得到了他们原来的名字,我可以下载整个网站的代码。
我只是想隐藏真正的文件夹名称,因为人们可以使用该文件夹名称来浏览内部网站
如何防止这种情况发生?我已经在 .htaccess 文件中列出了 Options -Indexes。
我正在开发 Joomla 并使用 Amazon EC2 Ubuntu Server,因此我可以完全控制服务器。
编辑:感谢 Pt。拉曼夏尔马和 LaughingQuoll。我真的不想隐藏css或js。我只想隐藏真正的文件夹名称,因为人们可以使用该文件夹名称来浏览内部网站
编辑:我的 .htaccess 文件:
IndexIgnore *
Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteBase /
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
【问题讨论】:
-
这听起来像是一个错误的概念:您当然没有任何方法可以以某种方式向需要代码的用户隐藏代码,显然因为没有代码他们无法看到/使用您的报价。这样想:你发布了一些东西。您不能一方面发布某些内容,另一方面又不允许人们查看它。 然而:你提供的 URL 完全没有理由应该反映你的内部文件结构,相反。您发布的 URL 应该不使您的文件系统可访问。这就是路由器/控制器的用途。
-
这正是我想要做的。我想防止“真实文件夹”名称被反映并隐藏我原来的内部文件结构@arkascha
-
那就去做吧。您的应用程序应使用路由器将请求路径映射到实际资源。你应该看看 URL 重写。
-
我已经在使用 URL 重写了。而且效果很好。但是,如果我查看 Sources(在 chrome 中使用 INSPECT),它会列出存在 css 和 js 文件的原始文件夹名称! @arkascha
-
你想再想想你最后的陈述......这是你如何设置重写规则的。你可以改变它们。 去做。
标签: php css .htaccess joomla amazon-ec2