nerbiz/crawl-shield

防止搜索引擎爬虫索引您的 Laravel 开发/测试站点

v1.0.3 2024-01-23 09:42 UTC

This package is auto-updated.

Last update: 2024-09-23 11:31:10 UTC


README

通过使用非常简单的密码机制,防止搜索引擎爬虫访问您的在线测试环境。

⚠️ 这绝不是为了安全目的!

它可以阻止爬虫索引您的临时测试环境,并在一定程度上防止不希望的访问,但请不要将其用于应用程序安全。

概念

通过中间件在您的路由中添加 ?pass=... 要求。这对于您来说很容易使用和记住,但对于搜索引擎来说是未知的。

目标是阻止所有爬虫索引任何测试环境的内容,并且始终有效。默认情况下,该机制在生产环境中被禁用。

安装

使用 Composer 安装此包

composer require nerbiz/crawl-shield

用法

配置

如果需要,您可以在 .env 文件中添加设置。

默认值会导致 https://example.com/?pass=abc123,您可以使用以下方式更改此参数和密码

  • CRAWL_SHIELD_PARAMETER(默认 'pass')
  • CRAWL_SHIELD_PASSWORD(默认 'abc123')

您还可以禁用此机制,或在生产环境中使其生效

  • CRAWL_SHIELD_ENABLED(默认 true)
  • CRAWL_SHIELD_ENABLED_IN_PRODUCTION(默认 false)

如果您希望将配置文件发布到自己的 config/ 目录,请使用此命令

php artisan vendor:publish --tag=crawl-shield

添加中间件

您有几种方法可以在 App\Http\Kernel 中应用中间件,具体取决于您想要如何保护您的路由。

// Option 1: Shield all routes
protected $middleware = [
    // ...
    \Nerbiz\CrawlShield\Middleware\CrawlShieldMiddleware::class,
];

// Option 2: Shield only specific route group(s) 
protected $middlewareGroups = [
    'web' => [
        // ...
        \Nerbiz\CrawlShield\Middleware\CrawlShieldMiddleware::class,
    ],
    // ...
];

// Option 3: Custom usage in your routes/ directory
protected $middlewareAliases = [
    // ...
    'crawl-shield' => \Nerbiz\CrawlShield\Middleware\CrawlShieldMiddleware::class,
];

结果

如果您访问 https://your-app,它将在开发环境中返回 403 状态。然后您可以通过访问 https://your-app/?pass=abc123 来绕过此 403。这将在会话中记住,因此您在之后的每个路由中都不需要密码。