有没有办法用密码保护www文件夹


is there a way to password protect the www folder?

我正在编写内部网应用程序,但服务器也用作工作站。我想知道是否有办法限制对WWW文件夹的访问,以便对使用这些应用程序的人隐藏服务器代码(在这种情况下为PHP)。

有了这个,我还可以保护在WWW文件夹内的脚本中编写的数据库的密码。

我已经环顾四周一段时间了,但我找不到任何关于这个的东西。

我和我的一个恶魔谈过,他告诉我,如果我使用 Windows,我可以在 windows 中创建一个用户,并使该文件夹只能由此帐户访问,并授予 Apache 访问权限,在这种情况下,我们可以从任何其他用户帐户查看网站,但无法访问文件。

我担心有人使用任何 linux 发行版的 live CD 来获取文件的可能性,他告诉我,如果我安装 grub 并锁定它,除非这样做的人有 grub 密钥,否则将无法使用实时 CD。

当然,在Linux中也是如此。谁能解释这个过程?还有其他建议吗?

这在Linux上很容易做到。例如,假设您有一个名为john的网站所有者的用户,并且系统上有另一个名为bob的用户。您不希望bob能够看到john的文件,但您希望 Apache 可以访问它们。默认情况下,Apache以单独的用户(通常为apachewww-data)运行,并且是john组和bob组的成员。

然后,保存文件的目录应该没有"其他"的权限,至少具有"组"的读取和执行权限,并且可能对用户具有完全访问权限。

drwxr-x--- 35 john john 4096 Jan 29 15:47 /path/to/john/webroot/

您可以通过执行以下操作来执行此操作:

chmod 750 /path/to/john/webroot/
这些文件

,为了被 Apache 访问,只需要读取访问权限。然后,您可以对它们进行 chmod 640:

chmod 640 /path/to/john/webroot/super_sensitive_config_file.php

然后应该显示如下所示的内容:

$ ls -l super_sensitive_config_file.php
-rw-r----- 1 john john 385 Jan 19 16:27 super_sensitive_config_file.php

然后,bob用户应看到如下所示的内容:

bob@server:~$ cat /path/to/john/webroot/super_sensitive_config_file.php
cat: /path/to/john/webroot/super_sensitive_config_file.php: Permission denied

所有与 Web 无关的资源(例如,不是 html 文件、css、javascript 等)都应该放在文档根目录之外。这样就无法通过浏览器访问它们。

完全阻止对文件的访问可能是不可能的,因为计算机的所有者(您的客户端)可能具有管理员权限,因此始终能够覆盖您对文件/文件夹施加的任何限制。

这给您留下了一些其他选择

  1. 不要安装在客户端的计算机上,而是出售"整个"软件包,包括只有您可以管理的小型服务器

  2. 在客户端计算机上安装的虚拟机上运行网站(例如 VMWare、Parallels Desktop 或类似设备)。仅允许您完全访问虚拟机,因此与选项 1 相同

  3. "混淆"PHP源代码。有一些选项(搜索PHP混淆),但我建议选项1或2

当然,您始终可以将网站作为"托管"服务提供,在外部Web服务器上运行,尽管如果包含重要信息和私人信息,则拥有所有正确的安全性非常重要。