如何关闭对我的基于 PHP-Apache 的网站使用的一些 bash 脚本的访问?
index.php
我的文档根目录中有一个文件/var/www/
。应该调用当前在目录index.php
中的一些 bash 脚本。/var/www/scripts/
但是我不喜欢这些脚本可以通过请求从 Internet 下载的事实http://mysite.com/scripts/script1.sh
。
如何关闭对脚本的访问,允许它们被调用index.php
?
如何关闭对我的基于 PHP-Apache 的网站使用的一些 bash 脚本的访问?
index.php
我的文档根目录中有一个文件/var/www/
。应该调用当前在目录index.php
中的一些 bash 脚本。/var/www/scripts/
但是我不喜欢这些脚本可以通过请求从 Internet 下载的事实http://mysite.com/scripts/script1.sh
。
如何关闭对脚本的访问,允许它们被调用index.php
?
您应该将脚本放在站点目录之外,这样无论服务器配置或权限发生什么情况,它们都无法下载。只要 apache 进程对它们具有执行权限,您仍然可以从您的 PHP 代码中执行它们。
您应该能够使用 FilesMatch 指令:
http://httpd.apache.org/docs/2.2/mod/core.html#filesmatch
带有 Order 和 Allow 和 Deny 指令。
干杯
如果您从 PHP 脚本中执行这些脚本,那么没有人会知道它们的存在。无论如何,您可以放置一个带有 Deny ALL 指令的 .htaccess 文件,以限制每个人从 Apache 访问该目录。这是另一个问题,为什么您需要 DocumentRoot 下的脚本目录,但我假设有些托管服务提供商不会给您另一个目录...
使用这个名为shc的 shell 脚本“编译器”混淆脚本可能不会有什么坏处。(不是真正的编译器)。