如何解决Facade\Ignition\Http\Middleware\IgnitionEnabled?

How to Solve Facade\Ignition\Http\Middleware\IgnitionEnabled?

----------------------------------------------------------------------------------+
| Domain | Method   | URI                        | Name             | Action                                                                 | Middleware
                                                                                  |
+--------+----------+----------------------------+------------------+------------------------------------------------------------------------+--------------------------------------------------
----------------------------------------------------------------------------------+
|        | GET|HEAD | /                          |                  | Closure                                                                | web
                                                                                  |
|        | POST     | _ignition/execute-solution |                  | Facade\Ignition\Http\Controllers\ExecuteSolutionController             | Facade\Ignition\Http\Middleware\IgnitionEnabled,F
acade\Ignition\Http\Middleware\IgnitionConfigValueEnabled:enableRunnableSolutions |
|        | GET|HEAD | _ignition/health-check     |                  | Facade\Ignition\Http\Controllers\HealthCheckController                 | Facade\Ignition\Http\Middleware\IgnitionEnabled
                                                                                  |
|        | GET|HEAD | _ignition/scripts/{script} |                  | Facade\Ignition\Http\Controllers\ScriptController                      | Facade\Ignition\Http\Middleware\IgnitionEnabled
                                                                                  |
|        | POST     | _ignition/share-report     |                  | Facade\Ignition\Http\Controllers\ShareReportController                 | Facade\Ignition\Http\Middleware\IgnitionEnabled,F
acade\Ignition\Http\Middleware\IgnitionConfigValueEnabled:enableShareButton       |
|        | GET|HEAD | _ignition/styles/{style}   |                  | Facade\Ignition\Http\Controllers\StyleController                       | Facade\Ignition\Http\Middleware\IgnitionEnabled

解决不了,这些是Laravel 6的新调试包的路由,叫做Facade/Ignition

它们是必需的,因此 Laravel 可以在错误发生时向您显示错误

所以忽略他们

但是,如果你想删除这些路由(不推荐),你可以从composer.json

中删除这一行
 "require-dev": {
        "facade/ignition": "^1.4", <--- Remove this one
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^3.0",
        "phpunit/phpunit": "^8.0"
    },

和运行

composer update

但是你不会看到自定义错误页面,而是默认的 PHP7 错误 table 和堆栈跟踪。

您仍然可以通过安装获得旧软件包filp/whoops

composer require filp/whoops

如果随机攻击者在您的生产服务器中发出大量 POST 请求 /_ignition/execute-solution,并且您注意到该请求调用了以下控制器和中间件:

Controller  Facade\Ignition\Http\Controllers\ExecuteSolutionController
Middleware  Facade\Ignition\Http\Middleware\IgnitionEnabled, Facade\Ignition\Http\Middleware\IgnitionConfigValueEnabled:enableRunnableSolutions

您必须在 .env 文件中将 APP_DEBUG 设置为 false,而不是删除 Facade/Ignition 包。

此问题的最新解决方案:

  1. 更新facade/ignition

composer update facade/ignition

  1. 如果你没有 config/ignition.php 那么 运行:

php artisan vendor:publish --tag=ignition-config

  1. 然后制作这个版本:

'enable_runnable_solutions' => false,