by Devin Yang

建立于: 3年前 ( 更新: 3年前 )

Laravel的调试模式相当丰富,Laravel官网有提醒,在本地端开发可设置APP_DEBUG为true,
但是在产品环境,这个值必需永远都是False。

虽然可以用php artisan down的方式进入维护模式,加上secret就能访问。

artisan down --secret=NWQwODZhNTM0ODY5Zjc1MDdkMWI4NzIy

再用网址网启后补上设置的secret
https://yourserver.example/NWQwODZhNTM0ODY5Zjc1MDdkMWI4NzIy

但如果在开发的东西,就是需要有外网的环境时,例如BOT的webhook,怎么辨呢🥺,至少要能锁个外网IP吧。
我目前做法,调整config/app.php,这样就能透过外网的方式决定是否启动DEBUG模式了。

/*
    |--------------------------------------------------------------------------
    | Application Debug Mode
    |--------------------------------------------------------------------------
    |
    | When your application is in debug mode, detailed error messages with
    | stack traces will be shown on every error that occurs within your
    | application. If disabled, a simple generic error page is shown.
    |
    */

    //'debug' => (bool) env('APP_DEBUG', false),
   'debug' => env('APP_DEBUG', ($_SERVER[env("PROXY_REAL_IP","REMOTE_ADDR")]??"null") == env('APP_CAN_DEBUG','') ? true : false),

在上方设置中,我们可以把.env的APP_DEBUG变更成APP_CAN_DEBUG=我的外网IP。
需要的话,再补上PROXY_REAL_IP,用来定义主机或容器能取得的真实IP。

这样一来只有要在.env中进行相关设置,就可以安心的进入Debug mode罗,
不用时调.env中的APP_CAN_DEBUG等於false就可锁起来。

#APP_CAN_DEBUG=false
PROXY_REAL_IP=HTTP_X_REAL_IP
APP_CAN_DEBUG=111.248.117.140

PROXY_REAL_IP用来设置了Proxy在header中带的真实IP,可依自己的环境进行设置。
像是HTTP_X_FORWARDED_FOR或是HTTP_X_REAL_IP等。
 

我们可写个简单的Route用phpinfo查自己的外网IP及$_SERVER的header名称为何,确认有没有设置错误。

Route::get('/myphpinfo', function(){
    phpinfo();
});

Tags: laravel Laravel security

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


docker, d-laravel, docker-compose, laravel

docker-compose加载多个设置档

我们会用docker --network创建多个container互连,但是如果四个container时, 是不是就要下四次docker run不同container的命令,杀了我吧, 本文介绍透过docker-compose这个yaml档定义一次搞定多个container的创建。 了解如何用dokcer-compose -f 参数加载多个设置档。  

laravel,woops

Laravel 5.5 Woops回来了,让我们来瞧瞧。

Woops是PHP错误处理的框架,在Laravel 4时预载了,但在之后的Laravel 5.0时移除,现在5.5又回来啦.... Whoops的一些功能包括: -灵活的,基於堆栈的错误处理 -使用目前独立函式库不需要依赖关系 -用於处理异常,跟框架及其数据的简单API -包括一个极漂亮错误页面您的网页应用进程内 -包括直接在编辑器和IDE中打开引用的文档的功能 -包括不同响应格式的处理进程(JSON,XML,SOAP) -易於扩展和与现有函式库 -清洁,结构良好且经过验证的代

laravel

升级Laravel 8.8,我把文章及笔记集成在一起了

Laravel 8大改版,我的网站也跟著改版,我网站上的「笔记」及「文章」本来是分开两个区块的。 这次把他集成在一起了,反正也没什么文章,合起来内容看起来比较多。:p