nerbiz / crawl-shield
防止搜索引擎爬虫索引您的 Laravel 开发/测试站点
v1.0.3
2024-01-23 09:42 UTC
Requires (Dev)
- php: ^8.1
- laravel/framework: ^10.0
- orchestra/testbench: ^8.20
- pestphp/pest: ^2.31
- pestphp/pest-plugin-laravel: ^2.2
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。这将在会话中记住,因此您在之后的每个路由中都不需要密码。