【问题标题】:Any PHP framework to use SECURELY on shared hosting?有任何 PHP 框架可以在共享主机上安全使用吗?
【发布时间】:2011-10-15 08:59:55
【问题描述】:

是否有 PHP 框架允许我生成应用程序,然后在共享主机上安全地使用它,只要可以实现共享主机安全性?我的意思是,例如,不需要任何具有 777 访问权限的 app/tmp 目录。

不是 Symfony -> http://trac.symfony-project.org/wiki/SharedHostingNotSecure

不是 CakePHP -> http://book.cakephp.org/view/911/Permissions

CodeIgniter -> “如果您是一名开发人员,生活在共享主机帐户和有截止日期的客户的现实世界中......” - 看起来很有希望,也许是这个?但我在文档中找不到任何特定于共享托管文件权限的内容

也许是 ZendFramework? (不知道是不是和PHP框架一样的类别,貌似)

任何现有可能的框架可以在共享主机上安全使用??

【问题讨论】:

  • (sidenote) 仅仅因为框架不使用 777 作为文件夹权限并不意味着它是安全的。它仍然很大程度上取决于您自己对可能的安全相关问题的认识,您使用它构建的应用程序是否安全。
  • 这也只是低端共享主机的问题。现代设置使用 suexec/suphp,不需要任何全局写入权限。
  • 我认为你需要修改你对“安全”的定义。您正在寻找一个不受文件权限影响的框架。
  • 我和这里的人有或多或少相同的安全问题:stackoverflow.com/questions/6384554/is-shared-hosting-secure -- 看起来有一个安全的共享主机是可能的

标签: php zend-framework codeigniter cakephp symfony1


【解决方案1】:

必须声明具有777 权限的目录只是cheapo 和入门级共享主机系统的问题。在该区域通常会看到 safe_mode hack 和 openbasedir 限制,它们只会阻止通过 PHP 进行访问,而不会阻止其他 CGI 解释器访问。

现代服务器设置使用 suexec/suphp,每个 PHP 脚本在当前帐户权限下运行。因此,您不需要任何全局写入目录,并且大多数 PHP 应用程序至少应该可以防止跨帐户篡改。框架本身在这里并没有什么不同。

【讨论】:

    【解决方案2】:

    你从错误的角度看待正确的问题。

    拥有权限为 777 的目录本身并不是不安全的。

    在共享主机上拥有 777 的目录是不安全的,因为 http 守护程序是为同一系统帐户下的所有客户端运行的。

    这是共享主机的固有“功能”,这就是它最便宜的原因。是的,它并不便宜,它是以安全为代价的。

    如果安全对您来说很重要,请购买 VPS。现在 VPS 已经足够便宜了。

    【讨论】:

    • 我知道 VPS 是安全的。但在我的情况下,我正在寻找共享主机的最佳解决方案。
    • 那么这真的没关系 - 你的应用程序生活在一个不安全的环境中,无论你做什么都将保持不安全。
    • 但假设服务器管理员是受信任的人。只有其他用户不受信任。然后我想我可以考虑共享托管安全,如果我不做一些不安全的事情,比如制作 777 目录。 777 允许其他用户写入 MY 目录,确实不安全。
    • 安全不是这样运作的。你不能只拿一些你认为安全的东西而忽略其他任何东西。这就是为什么它们被称为“攻击向量”,因为它们像数学一样“加起来”:en.wikipedia.org/wiki/Euclidean_vector#Addition_and_subtraction 您的薄弱环节是您不信任的不同用户在与您相同的系统帐户下运行他们的应用程序的事实- 所以他们也可以做你能做的一切。这就是共享主机的定义,为了解决这个问题,您需要将主机模型从共享​​>更改为私有
    • 我知道我在说你不想听的话。我所说的是纯粹的技术事实。
    【解决方案3】:

    我建议Zend Framework。据我所知,不需要任何文件权限。只需要一些适当的配置。是的,它是一个 PHP 框架。我的整个库都在 root 所有者之下,每个人都具有读取权限,并且工作正常。从来不需要 chmod 任何东西。对于库,如果类需要,您始终可以定义自己的 tmp 路径。

    【讨论】:

    • ZF 在共享主机上的安全性如何?请解释你的建议。以你最喜欢的框架的名字命名是没有用的。
    • 好吧,根据我从 OP 对“安全”的定义所理解的,我认为他的意思是文件权限。
    【解决方案4】:

    大多数成功的攻击发生是因为用户/管理员坚持使用默认值;这是众所周知的。请参阅 Windows 攻击。令人难以置信的是,有多少“管理员”不仅保留了默认 URL、默认目录结构,还保留了用户 ID 和密码。在我的网站上,我反复看到 /wp-login.php 的一些登录尝试,ID:PW 为 admin:admin。我什至不知道这些是不是一些默认值,我的网站甚至不是 WP,但似乎是,我认为那些黑客每隔一段时间就会幸运。

    我认为安全始终是提高标准,使其变得更加困难。从来没有 100% 的安全保证。我认为您可以选择任何框架或应用程序,但您的工作是通过更改默认设置使其变得更加困难。

    我只能代表 ZF,你可以做一些没人猜到的怪异配置;除非您的应用程序偶尔出现错误,并且您会显示包含完整信息的错误消息。

    【讨论】:

    • 不错!在所有答案中,我的答案是反对票?请阐明为什么是我的。
    • 可能是因为您的建议听起来像 *security through obscurity"
    • @tereško 我猜。但是,这里的问题是关于共享主机的安全性,我的回答是针对该特定问题。因为默默无闻是您必须采取的首要防御措施之一。
    猜你喜欢
    • 2011-06-12
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多