目录权限 - Ubuntu Web 服务器

目录权限 - Ubuntu Web 服务器

我最近设置了一个新的虚拟服务器来托管我的网站。我对基于 Linux 的系统和系统管理的东西还很陌生,因此对文件和目录权限有一些疑问。

我的主站点位于 /var/www,其中有一个目录,我在其中保存了一些 PHP 脚本,其中一个包含数据库的连接详细信息。我希望确保没有人可以通过访问 www.mydomain.co.uk/mydir 来访问这些脚本,但 www-data 用户仍然可以访问这些脚本,以便可以从站点上的其他页面调用和执行这些脚本。

我最初的想法是将文件的权限更改为 400;但是,我不知道对于目录的权限该怎么做。

我如何更改目录的权限,以便人们访问 www.mydomain.co.uk/mydir 时可以执行其中的文件但看不到它们?

答案1

您可以通过 apache 配置修复此问题。请参阅http://httpd.apache.org/docs/2.2/howto/access.html

用一个

<Directory /mydir>
    Order deny,allow
    Deny from all
</Directory>

,外部对该目录的访问被阻止,但是 php 脚本仍然可以访问它。

答案2

正确配置的 Apache/PHP 堆栈不会允许包含数据库详细信息的 .php 文件输出到浏览器,因为浏览器会将其解释为 .php 脚本而不是文本。因此,如果有人无意中发现了该目录或文件,他们将看不到数据库登录信息 — — 再次强调,前提是 Apache 配置正确并且脚本中没有错误。

但是,最好将脚本放在与面向公众的目录不同的目录中,该目录不由 Apache 直接提供。在 Stackoverflow 上搜索一下,可以找到许多有用的答案,下面是其中一个:

https://stackoverflow.com/questions/2573496/help-securing-files-access-with-htaccess-and-php

编辑:

还有另一个。

https://stackoverflow.com/questions/6524565/php-file-security-on-webserver

此外,如果您真的认真学习 PHP,我建议您在学习语言的同时学习一些框架,这些框架可以帮助您处理其中的一些内容,并在您不知道需要的领域提供安全性。PHP 本身并不是一种不安全的语言,但编写不安全的应用程序非常容易。

http://www.yiiframework.com/

http://ellislab.com/codeigniter

答案3

如果您有一个 index.php,那么即使他们转到 /var/www/mydir 也没关系,因为它只会显示 index.php 中的内容。

相关内容