【问题标题】:Is it unsafe to keep a Laravel project files inside public_html?将 Laravel 项目文件保存在 public_html 中是否不安全?
【发布时间】:2018-06-29 22:03:12
【问题描述】:

我在共享主机上的 public_html(即下一层)中有 3 个不同的 laravel 项目。

我将每个域/子域文档根路径更改为指向各自的项目/公共文件夹(即 public_html/project1/public)

此外,我将 Options -Indexes 语句放在我的 .htaccess 文件中,这样人们就无法直接浏览我的项目文件,并且拒绝了对 .env 文件的所有访问。

这样做还有漏洞吗?

【问题讨论】:

  • 是的,它可能非常不安全。在最坏的情况下,您可能会做一些事情,例如意外暴露您的数据库凭据。

标签: laravel shared-hosting public-html


【解决方案1】:

我假设当您提到 public_html 时,您正在使用类似 cpanel 的共享托管解决方案。在这些情况下,apache 托管配置和对各个文件夹的访问由托管服务提供商管理。这意味着您有有限的访问权限来限制对您的代码的访问。通常,托管服务提供商会公开 public_html 中的所有文件。

因此,如果我对您的设置的假设是正确的,那么您的问题的答案是:是的,这是不安全的。

您可能还想知道: 如何在共享主机服务器上安全地安装 laravel?

您应该按照laravel-news 的说明进行操作。本文将向您展示如何提取应该公开的文件夹并更新您的配置以指向迁移到新位置的子文件夹。

希望这会有所帮助。

【讨论】:

  • 你的假设是正确的。按照链接中的安全方法,是否可以在同一个帐户上拥有多个项目(不同的域)?每个项目都需要自己的文件(即 .env 文件),但只有一个“public_html”文件夹。
  • 我的意思是每个项目都需要自己的“公共”文件夹来存储 css、图像等(忘记 env 文件)
  • @user1604542,是的,你可以。您需要为您的公用文件夹命名一个唯一的名称,您必须为每个文件夹更新 .htaccess(通常可以通过 cpanel 进行)。通常,当您向 cpanel 添加新域时,它会在 public_html 中为其创建相应的公用文件夹。还要检查softalicious是否有laravel。一些托管服务提供商在 softalicous 中提供了 laravel 解决方案。我个人在共享托管解决方案上运行博客,但在 aws 上构建我的 laravel 项目,我建议将 aws 用于 laravel。查看他们的 12 个月免费套餐。 aws.amazon.com/free
  • 太棒了,是的,我实际上想知道什么是更好的托管选项。谢谢大佬!
  • 没问题,欢迎来到 StackOverflow!如果它回答了您的问题,请务必投票并选择它作为答案:)。
【解决方案2】:

您永远不应将应用程序源文件保存在可公开访问的位置。这就是首先拥有一个公共目录的全部意义,以限制可以访问的内容。

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2016-12-07
    • 2017-02-06
    • 1970-01-01
    • 2011-11-25
    相关资源
    最近更新 更多