by Devin Yang

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

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

需要登入才可留言!

类似文章


openapi,ai,laravel

在Laravel上写OpenAI测试API

最近好像大家都在讲OpenAI,如果您也想玩,可以在Laravel的API写个简易的API测试哦。因为可以用curl调用,所以透过guzzle就能调用了。如果您登录了openai的网站,可在此处看到官方的教程说明https://beta.openai.com/docs/quickstart/build-your-applicationAPI的KEY的申请,就在这页的下方就有按钮了+ Create new secret key

dlaravel

使用D-Laravel build自己专用的php fpm image。

D-Laravel已提供了Build好的php image,如果需要自己调整及Build自己专用的Image相当简单。 一、首先在D-Laravel的录中,进入dockerfiles/fpm,选择您要Build的PHP版本,例如7.2。 命令如下...

laravel範例,laravel教學,livewire範例,laravel

如何在Laravel Livewire组件设置中文化的错误信息

本文透过简易的Laravel livewire范例,看看livewire组件如何验证使用者输入错误,并显示中文错误信息。