原生 PHP 项目引入 Laravel 进行二次开发,安全问题令人担忧,求改进方法

原项目运行环境如下
PHP 版本:5.4.45(不能升级)
运行方式:cgi-fcgi
Web 服务器:Windows NT

如今要新增功能,为方便二次开发,我在原项目的根目录里新建了一个laravel5.0项目。整体目录如下

网站根目录
 |- .htaccess
 |- index.php
 |- laravel5.0
      |- .env
      |- public
           |- .htaccess
           |- index.php
           |- web.config

但是,这却带来了安全问题,因为整个laravel5.0项目全部都暴露在网站的根目录里了。要求:设置 laravel5.0整个目录及其子目录禁止访问(除public目录之外)。请问该如何配置服务器呢?
暂不考虑apache和nginx的配置,能否通过修改.htaccess、web.config或其他方式达到目的呢?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

线上可以不需要 .env 文件,只要把 config 目录下的配置里所有 env() 函数的第二个参数设成线上的数值即可,本地可以继续保留 .env 文件。

4年前 评论
zhaiduting (楼主) 4年前
zhaiduting (楼主) 4年前
zhaiduting (楼主) 4年前
讨论数量: 6
leo

线上可以不需要 .env 文件,只要把 config 目录下的配置里所有 env() 函数的第二个参数设成线上的数值即可,本地可以继续保留 .env 文件。

4年前 评论
zhaiduting (楼主) 4年前
zhaiduting (楼主) 4年前
zhaiduting (楼主) 4年前

那就还是用旧版 CI 或者 TP 3.2 吧。至少人家稳定。
CI2.x 系列跑了十来年的都有。 CI 一个好处是除去不恰当使用,基本没漏洞。

4年前 评论
zhaiduting (楼主) 4年前

public_path重新设定下就行了,laravel其它可以全部移走

4年前 评论
zhaiduting (楼主) 4年前
leo

线上可以不需要 .env 文件,只要把 config 目录下的配置里所有 env() 函数的第二个参数设成线上的数值即可,本地可以继续保留 .env 文件。

4年前 评论
zhaiduting (楼主) 4年前
zhaiduting (楼主) 4年前
zhaiduting (楼主) 4年前

刚刚百度了一篇文章《.htaccess的基本作用及相关语法介绍》,貌似配置 .htaccess 文件可以达到要求。但是好像有几个前提:1、只能针对阿帕奇服务器有效,IIS或nginx无效?2、只能针对当前目录有效,层级目录的话需要多层配置? 文章没有仔细阅读了,因为感觉还是解决不了我的问题

4年前 评论

都这么干了,, 把原有项目统一一下吧. 不然接手人有想打死你的冲动

4年前 评论
zhaiduting (楼主) 4年前
❤seven 4年前
zhaiduting (楼主) 4年前
可乐加冰 (作者) 4年前
zhaiduting (楼主) 4年前

laravel项目不能移出,只能放在网站根目录下面

可以的啊, 把index.php 里这句

 require __DIR__.'/../vendor/autoload.php';

改了就行

4年前 评论
zhaiduting (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!