当前位置: 首页 > 知识库问答 >
问题:

更改文件夹结构以删除公共文件夹时对Laravel 5安全性的影响

呼延升
2023-03-14

我是新来的拉威尔5号。

我发现这个Laravel5-removepublicfromURL在堆栈溢出时可以从我的Laravel5应用程序中删除公用文件夹。只有我有一个关于安全的问题。

当我从URL中删除public时,我必须更改Laravel5的基本文件夹结构。是的,如果没有来自URL的公众,它可以正常工作。

但是Laravel的安全性如何,因为我正在更改默认的文件夹结构?使用安全吗?

共有2个答案

孙琨
2023-03-14

你提供的这个链接不是关于改变框架的实际文件结构,这个例子使用mod_rewrite重写你的应用程序的url。换句话说,你是在告诉你的服务器,你想指向那个目录,而最终用户看不到完整的路径。

还可以查看您提供的链接的以下答案。

将Laravel根文件夹中的server.php重命名为index.php,并将.htaccess文件从/public目录复制到Laravel根文件夹。-就这样!!:)

华哲茂
2023-03-14

您应该将Apache主机根目录指向$LARAVEL\u PATH/public目录,而不是$LARAVEL\u PATH

为www主机根而不是项目根设置子目录的意义在于,您不会通过Web服务器泄露任何项目文件。

即使所有PHP文件都有文件后缀. php,恶意用户也可以访问您的$LARAVEL_PATH/store目录及其子目录内容,读取您的composer.jsonpackage.json 查找易受攻击的依赖项或读取. env文件等。

如果您在共享主机上运行,并且您必须使用public\u html,请尝试在该public\u html目录之外安装Laravel,并删除public\u html(如果为空)并将其替换为指向$Laravel\u PATH/public的符号链接,或者如果您希望Laravel实例成为public\u html的子目录,执行相同操作,但创建从$LARAVEL\u PATH/publicpublic\u html/$PROJECT\u SUBDIR`的符号链接。

那个公共目录的存在是为了使项目更加安全。解决实际问题,不要试图破坏这一简单但很好的安全添加。:)

 类似资料:
  • 从Java中删除文件夹时发现问题。我使用了以下命令,但运气不好。但是,我可以使用Windows 8.1通过命令提示符删除文件夹: 在这三种情况下,我得到的例外是: java.io.IOException:无法运行程序rmdir:CreateProcess错误=2,系统找不到java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)java.la

  • 因此,我的Laravel项目中有以下文件夹组织: 公共 user_images group_images img css 供应商 等... 所以我的问题是,当用户上传图像时,我将其移动到文件夹user#image,然后使用干预图像使其变小,使用image::make(#folder),然后重新调整其大小,最后保存它。但要做到这一点,文件夹用户_映像需要特殊权限,使用chmod 777,我可以使其正

  • 简介 默认的 Laravel 应用结构旨在为不同大小的应用提供一个好的起点。当然,你也可以根据自己的喜好整理应用的目录结构。 Laravel 没有严格地限制任何给定的类的位置,只要它们能够被 Composer 自动加载。 为什么没有模型目录? 当开始使用 Laravel 时,许多开发人员都因缺少 Models 目录而感到困惑。然而,缺少这样的目录是故意的。 我们发现「模型」含糊不清,因为对许多不同

  • CakePHP 应用程序框架提供以下几个默认顶层文件夹: bin 文件夹包含控制台可执行文件。 config 文件夹包含少许 Configuration 内核使用的文件。比如数据库 连接信息文件,引导文件,内核配置以及其他。 plugins 文件夹包含了你的应用程序所使用的 Plugins。 logs 文件夹一般包含了根据你的配置而定的日志文件。 src 文件夹将是你的应用程序的源代码的所属之地。

  • 我有一个像这样的文件夹 应用程序 供应商 引导程序 公开的 文件夹 img 当我从url访问时http://example.com/img/img.png它工作,但当我喜欢访问http://example.com/img/我得到禁止403,我需要的是重定向或显示该页面没有找到我的。htaccess看起来像这样。 选项-多视图选项-索引重写引擎打开

  • 问题内容: 更新我的adt插件后。每当我创建任何项目时,都会创建“ appcompat v7”文件夹。我使用了这种依赖性。但是问题是假设我当时有5个项目。它会使5个不同的文件夹做什么? 问题答案: 这是ADT / SDK更新的一部分,这并不是一件坏事。它确保您的应用程序完全支持在API 14+中实现的ActionBarActivity。默认情况下,它将在每次创建时创建,但是您只需做一些工作就可以保