padosoft / laravel-composer-security
composer.lock 的安全检查器。
Requires
- guzzlehttp/guzzle: ~6.0
- illuminate/console: ~5.0
- illuminate/support: ~5.0
- tightenco/mailthief: 0.*
Requires (Dev)
- padosoft/laravel-test: ^1.0
- padosoft/test: ^0.1
README
这是一个为 Laravel 5.1/5.2/5.3 提供测试 composer.lock 文件安全漏洞的 artisan 命令的 package。它也适用于 php7.0 和 php7.1。
目录
先决条件
LARAVEL 5.1+ GUZZLE 6+
安装
此 package 可以通过 Composer 安装。
composer require padosoft/laravel-composer-security
您必须安装此服务提供者。
// config/app.php 'provider' => [ ... Padosoft\LaravelComposerSecurity\ComposerSecurityCheckServiceProvider::class, ... ];
您不需要在 app/Console/Kernel.php 中注册命令,因为它由 ComposerSecurtyCheckServiceProvider 的 register() 方法提供。
您可以使用以下命令发布此 package 的配置文件
php artisan vendor:publish --provider="Padosoft\LaravelComposerSecurity\ComposerSecurityCheckServiceProvider"
以下配置文件将发布到 config/composer-security-check.php
return array( 'mailSubjectSuccess' => env( 'SECURITY_CHECK_SUBJECT_SUCCESS', '[composer-security-check]: Ok - no vulnerabilities detected.' ), 'mailSubjetcAlarm' => env( 'SECURITY_CHECK_SUBJECT_ALARM', '[composer-security-check]: Alarm - vulnerabilities detected.' ), 'mailFrom' => env('SECURITY_CHECK_MESSAGE_FROM', 'info@example.com'), 'mailFromName' => env('SECURITY_CHECK_MESSAGE_FROM_NAME', 'Info Example'), 'mailViewName' => env('SECURITY_CHECK_MAIL_VIEW_NAME', 'composer-security-check::mail'), 'logFilePath' => env('SECURITY_CHECK_LOG_FILE_PATH', storage_path().'/composersecurityCheck.log') );
在配置文件夹中,您可以从 .env.example 复制设置到您的 .env 文件中,该文件用于 composer-security-check.php。如果您在配置文件夹中使用 mathiasgrimm/laravel-env-validator,您将找到用于验证环境设置的示例。
使用
安装完成后,您可以轻松运行命令以打印帮助信息
php artisan composer-security:check
composer-security:check
命令会在给定路径中查找每个 composer.lock 文件,并对每个 composer.lock 检查项目依赖中的安全问题: php composer-security:check
如果您省略路径参数,命令将在当前文件夹中查找。
您也可以将路径作为参数传递: php composer-security:check /path/to/my/repos
您可以在路径参数中使用 * 作为通配符,例如 /var/www/*/*/
默认情况下,命令将在控制台显示结果,但您也可以使用 --mail
选项发送 HTML 邮件
php composer-security:check /path/to/my/repos --mail=mymail@mydomain.me
示例
以下是一个基本示例,用于检查这些目录中的 composer.lock
php artisan composer-security:check "/dir/to/check/*/*/"
以下是一个将输出报告发送到邮件的示例
php artisan composer-security:check "/dir/to/check/*/*/" --mail=mymail@mydomain
以下是一个忽略两个目录中两个 composer.lock 漏洞的示例(如果命令在这些目录中找到任何漏洞,则将其写入输出,但电子邮件主题不会被设置为警报)
php artisan composer-security:check "/dir/to/check/*/*/" --mail=mymail@mydomain --whitelist="/dir/to/put/in/witelist,/another/dir/to/put/in/witelist"
定时命令
您可以通过将以下行添加到 app/Console/Kernel.php
中的 schedule
方法来轻松安排每日(或每周等)报告
// app/console/Kernel.php protected function schedule(Schedule $schedule) { ... $schedule->command('composer-security:check "/dir/to/check/" --mail=mymail@mydomain') ->daily() ->withoutOverlapping() ->sendOutputTo(Config::get('composer-security-check.logFilePath')); }
截图
测试
$ composer test
贡献
有关详细信息,请参阅 CONTRIBUTING 和 CONDUCT
安全
如果您发现任何与安全相关的问题,请通过电子邮件报告,而不是使用问题跟踪器。
API 文档
请参阅API文档:https://padosoft.github.io/laravel-composer-security
致谢
关于 Padosoft
Padosoft是一家位于意大利佛罗伦萨的软件公司。专注于电子商务和网站。
许可证
MIT许可(MIT)。请参阅许可文件以获取更多信息。