markohs/forcehttps

简单的Laravel中间件,强制HTTPS连接

v1.1.0 2021-06-01 01:24 UTC

This package is auto-updated.

Last update: 2024-09-29 05:35:58 UTC


README

Build Status Latest Version on Packagist Total Downloads StyleCI

这是一个简单的Laravel中间件,用于强制您的客户端使用HTTPS。它包含一个简单的白名单系统。查看contributing.md以查看待办事项列表。

安装

通过Composer

$ composer require markohs/forcehttps

发布默认配置文件

$  php artisan vendor:publish --tag=forcehttps.config

现在您可以在config/forcehttps.php中编辑默认设置

要求

此包仅在Laravel 6.0和8.0上进行了测试

使用方法

您可以使用以下任何一种方法

您可以在单个路由中强制使用HTTPS,例如在routes/web.php

Route::get('/','StaticPageController@getRoot')->middleware('forcehttps');

您还可以在config/forcehttps.php中使用自动的MiddlewareGroup注册机制

	'autoregister' => ['web']

或者,您可以在app/Http/Kernel.php中手动添加中间件,就像在所需的MiddlewareGroups中一样

...
'web' => [
    \App\Http\Middleware\EncryptCookies::class,
...
    \Markohs\ForceSSL\Middleware\ForceHTTPS::class,
...

    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],
...

设置活动环境

默认情况下,此包仅在您指定的环境中激活,即stageprodproduction。如果需要,请更新config/forcehttps.php

    'enabled_environments' => ['stage', 'prod', 'production'],

URL白名单机制

此包还具有我在项目中找到的有用的路径排除机制。即使请求受到此中间件的影响,也会检查路径列表,以“白名单”的方式,这些URL不会发出301 HTTP重定向。我用于与其他使用旧POST样式且不支持HTTPS的传统系统进行通信。

您可以在config/forcehttps.php中设置此URL白名单

    'whitelist' => [
        'example/url',
        'example2'
    ],

重要说明

如果您使用Cloudflare或某种类型的代理来托管您的网站,请确保您正确配置了TrustedProxy,否则此中间件将导致重定向循环。

请确保您保持配置文件/config/trustedproxy.phpapp\Http\Middleware\TrustProxies.php中的变量$proxies的最新状态。或者

变更日志

请参阅changelog以获取有关最近更改的更多信息。

贡献

请参阅contributing.md以获取详细信息以及待办事项列表。

安全

如果您发现任何安全相关的问题或想帮助改进此包,请发送电子邮件至marcos@tyrellcorporation.es或使用问题跟踪器或发送PR。

致谢

许可

MIT。请参阅许可文件以获取更多信息。