byteflick/laravel-strict-domain

Laravel 严格的域名检查包,确保无缝重定向到指定域名,优化 Laravel 应用程序中的安全和用户体验。

v3.0.1 2024-03-18 18:36 UTC

This package is not auto-updated.

Last update: 2024-09-16 20:54:48 UTC


README

Laravel 严格的域名检查

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel 严格的域名检查是一个轻量级的包,旨在无缝集成到 Laravel 应用程序中,为基于域名的重定向提供简单解决方案。使用此包,您可以将进入您的 Laravel 应用程序的流量重定向到指定的域名,如果请求的域名与配置的域名不匹配。通过实现可定制的中间件,开发者可以轻松地强制执行域名一致性,增强安全性和用户体验。无论管理多个域名还是执行品牌标准,此包都为 Laravel 应用程序中的域名重定向提供了一种灵活且高效的解决方案。

安装

您可以通过 composer 安装此包

composer require byteflick/laravel-strict-domain

您可以使用 (可选) 发布配置文件

php artisan vendor:publish --provider="ByteFlick\LaravelStrictDomain\LaravelStrictDomainServiceProvider"

这是发布配置文件的内容

return [
    'include_sub_domains' => true,
    'domain' => env('APP_DOMAIN', 'localhost.com'),
];

用法

步骤 1: 配置环境

您需要将名为 APP_DOMAIN 的环境变量添加到您的 .env 文件中。此变量的值用于验证传入的流量。

APP_DOMAIN=localhost.com

步骤 2: 应用中间件

2.1 重定向外部流量

如果您想将来自其他域名/主机的应用程序流量重定向到您自己的应用程序,则可以使用 RedirectExternalTraffic 中间件。当您想将所有来自 johndoe.com(引用域名)和其他域名/主机的流量重定向到 janedoe.com(您指定的域名)时,这非常有用。

仅针对特定路由

您可以将中间件添加到单个路由或通过路由组应用它。

Laravel 11 全局应用

通过以下代码将中间件添加到您的 bootstrap/app.php 中的默认中间件,以重定向所有外部流量到您指定的主机。

->withMiddleware(function (Middleware $middleware) {
     $middleware->append(\ByteFlick\LaravelStrictDomain\Middlewares\RedirectExternalTraffic::class);
})
Laravel 10 全局应用

通过以下代码将中间件添加到您的 App\Http\Kernel.php 中的默认中间件,以重定向所有外部流量到您指定的主机。

protected $middleware = [
    \ByteFlick\LaravelStrictDomain\Middlewares\RedirectExternalTraffic::class,
];

2.2 阻止外部流量

如果您想阻止来自其他域名/主机的应用程序流量进入您自己的应用程序,则可以使用 BlockExternalTraffic 中间件。当您想允许来自 janedoe.com 的流量,但阻止 johndoe.com 和其他流量到您的应用程序时,这非常有用。

仅针对特定路由

您可以将中间件添加到单个路由或通过路由组应用它。

Laravel 11 全局应用

通过以下代码将中间件添加到您的 bootstrap/app.php 中的默认中间件,以阻止所有外部流量。

->withMiddleware(function (Middleware $middleware) {
     $middleware->append(\ByteFlick\LaravelStrictDomain\Middlewares\BlockExternalTraffic::class);
})
Laravel 10 全局应用

通过以下代码将中间件添加到您的 App\Http\Kernel.php 中的默认中间件,以阻止所有外部流量。

protected $middleware = [
    \ByteFlick\LaravelStrictDomain\Middlewares\BlockExternalTraffic::class,
];

更新日志

请参阅 更新日志 了解最近更改的详细信息。

贡献

请参阅 贡献指南 了解详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。