【问题标题】:is there a way to password protect the www folder? [closed]有没有办法密码保护www文件夹? [关闭]
【发布时间】:2013-01-29 20:08:07
【问题描述】:

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

这样,我还将保护写在 WWW 文件夹内的脚本中的数据库密码。

我已经四处寻找了一段时间,但我无法找到任何关于此的信息。

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

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

当然,在 linux 中也是可以的。 谁能解释一下这个过程? 还有什么建议吗?

【问题讨论】:

  • 你是说Windows上没有权限系统?
  • 我理解正确吗?您正在销售基于 Web 的产品(例如 Intranet)并将其安装在客户计算机上,但不希望客户访问您的源代码 (php) 和数据库?跨度>
  • 是的,我的意思是我正在销售用于 Intranet 服务的 Web 应用程序,我不希望他们访问源代码。
  • @PeeHaa 在 Windows 上有一个权限系统,但我使用 ubuntu 的简单 live cd 通过了它。我可以访问磁盘上的所有文件并做任何我想做的事,无论我对它们有什么 Windows 权限。
  • 如果您不希望人们访问您的代码,请不要分享它。期间。

标签: php apache web directory


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这读起来好像你在说 html、css、javascript 应该放在文档根目录之外。我假设你的意思是除了那些应该在外面之外的所有东西。
    • 糟糕。我纠正了它。感谢您指出这一点。
    • 我认为 OP 意味着不应允许在服务器上工作的人物理上(将其用作工作站)访问网站的文件。
    • @thaJeztah 这正是我的意思是应用程序应该通过 localhost 或 ip 访问,而不是源本身,我的意思是服务器端代码,其中还包含配置文件和访问密码数据库。
    【解决方案3】:

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

    这给你留下了一些其他的选择

    1. 不要安装在客户的电脑上,而是出售一个“完整”的包,包括一个只有你可以管理的小型服务器

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

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

    当然,您始终可以将网站作为“托管”服务提供,在外部 Web 服务器上运行,但如果包含重要信息和私人信息,则确保所有正确的安全措施到位很重要。

    【讨论】:

      猜你喜欢
      • 2023-02-25
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 2014-12-16
      • 1970-01-01
      • 2013-05-11
      相关资源
      最近更新 更多