
Enlightnをパフォーマンスおよびセキュリティコンサルタントと考えてください。 Enlightnは、コードとサーバーの構成を「確認」し、パフォーマンス、セキュリティ、信頼性の向上に関する実用的な推奨事項を提供します。
Enlightn OSS(オープンソースソフトウェア)バージョンには、アプリケーションコード、Webサーバーの構成、ルートをスキャンする66の自動化されたチェックがあり、パフォーマンスボトルネック、可能なセキュリティの脆弱性、コード信頼性の問題を識別します。
Enlightn Pro(コマーシャル)は、Enlightn Webサイトで購入でき、64個の自動小切手(合計131個のチェック)があります。
利用可能な131個のチェックのそれぞれは、十分に文書化されています。ここで完全なドキュメントを見つけることができます。
| Enlightn | ララヴェル | ララスタン | phpstan |
|---|---|---|---|
| 1.x | 6.x-9.x | 0.6x-1.x | 0.12x-1.1x |
| 2.x | 9.x-11.x | 2.x | 1.4x+ |
注:Enlightn Proバージョンには、同じ互換性マトリックスが適用されます。
Composer Package Managerを使用して、Enlightnをプロジェクトにインストールできます。
composer require enlightn/enlightnEnlightnをインストールした後、ベンダーを使用して資産を公開できます。
php artisan vendor:publish --tag=enlightn注:Enlightn Proをインストールする必要がある場合は、Enlightn Webサイトのドキュメントをご覧ください。
Enlightnをインストールした後、 enlightn Artisanコマンドを実行してEnlightnを実行します。
php artisan enlightn端末以外にEnlightn Web UIでレポートを表示する場合は、 --reportフラグを追加できます。
php artisan enlightn --report特定のアナライザークラスを実行する場合は、オプションの引数としてそれらを指定できます。
php artisan enlightn Enlightn \ Enlightn \ Analyzers \ Security \ CSRFAnalyzer Enlightn \ EnlightnPro \ Analyzers \ Security \ DirectoryTraversalAnalyzer上記のように、クラス名は完全に資格を持ち、二重スラッシュで逃げる必要があることに注意してください。
完全なEnlightnエクスペリエンスを取得したい場合は、少なくとも生産時にEnlightnを実行することをお勧めします。これは、Enlightnのチェックのいくつかが環境固有であるためです。そのため、アプリ環境が生産されている場合にのみトリガーされる場合があります。
生産時に実行したくない場合は、APP_ENVを生産に設定し、サービスと構成を可能な限り近くに設定し、生産展開スクリプトをローカルで実行することにより、生産環境をシミュレートできます。次に、Enlightn Artisanコマンドを実行します。
デフォルトでは、 enlightn Artisanコマンドは、失敗したチェックごとにファイルパス、関連する行番号、およびメッセージを強調表示します。各行の詳細なエラーメッセージを表示する場合は、 --detailsオプションを使用できます。
php artisan enlightn --detailsCIとEnlightnを統合したい場合は、CI/CDツールでEnlightnを実行するときに--ciオプションをトリガーできます。
php artisan enlightn --ci Enlightn Web UIでCIレポートを表示する場合は、 --reportフラグを追加できます。ここで説明するように、プロジェクトの資格情報をconfig/enlightn.phpファイルに追加することを忘れないでください。
php artisan enlightn --ci --reportEnlightn PreConfiguresどのアナライザーをCIモードで実行できるか。したがって、上記のコマンドは、実行するために完全なセットアップを必要とするアナライザーを除外します(たとえば、動的分析を使用したアナライザーなど)。
CI統合の詳細については、ENLIGHTNドキュメントを参照してください。
特にCI環境では、現在報告されているエラーのリストを「ベースライン」として宣言することがあります。これは、現在のエラーが後続の実行では報告されず、新しいエラーのみがフラグが表示されることを意味します。
ベースラインを自動的に生成するには、 enlightn:baseline職人コマンド:
php artisan enlightn:baselineこのコマンドをCIモードで実行する場合は、 --ciオプションを使用できます。
php artisan enlightn:baseline --ciベースラインの確立の詳細については、ドキュメントを参照してください。
Enlightnは、CIまたはスケジュールされたコマンドの実行からトリガーされたEnlightnレポートを表示できる美しいWeb UIダッシュボードを提供しています。
Web UIはすべてのユーザーに無料で、以下が含まれます。
Web UIにアクセスするために、必要なのはEnlightn Webサイトで無料でサインアップし、ここに記載されている指示に従うことだけです。
EnlightnをCI/CDツールと統合することに加えて、次のような通常の周波数(毎日や毎週など)でEnlightn Runをスケジュールすることをお勧めします。
// In your app/Console/Kernel.php file:
/**
* Define the application's command schedule.
*
* @param IlluminateConsoleSchedulingSchedule $schedule
* @return void
*/
protected function schedule ( Schedule $ schedule )
{
$ schedule -> command ( ' enlightn --report ' )-> runInBackground ()-> daily ()-> at ( ' 01:00 ' );
}これにより、通常はCIから除外されるEnlightnの動的分析チェックを監視できます。レポートは、Enlightn Web UIで表示できます。
Enlightnは、失敗したチェックを強調するレポートを準備できるGitHubボットを提供し、新しい問題を導入するコードラインにプル要求のレビューコメントを追加します。
Enlightn Githubボットと統合するには、ドキュメントを参照してください。
失敗するすべてのチェックには、関連するコードの行(該当する場合)とともに失敗した理由の説明と、特定のチェックのドキュメントへのリンクが含まれます。
最後に、すべてのチェックが実行された後、 enlightn Artisanコマンドはレポートカードを出力します。これには、渡された、失敗した、またはスキップされた小切手の数と割合に関する情報が含まれます。
「該当なし」と示されているチェックは、特定のアプリケーションに適用できず、スキップされました。たとえば、CSRFアナライザーは、ステートレスアプリケーションには適用されません。
「エラー」の行で報告されたチェックは、分析中に例外で失敗したアナライザーを示しています。通常、これは発生する必要はありませんが、もしそうなら、関連するエラーメッセージが表示され、アプリケーションと関係がある場合があります。
良い習慣は、コードを展開したり、新しいリリースをプッシュするたびにEnlightnを実行することです。 EnlightnをCI/CDツールと統合して、プッシュまたは新しいリリースごとにトリガーされるようにすることをお勧めします。
自動化されたCIチェックに加えて、上記のようにスケジュールされたコンソールコマンドを使用して、通常の周波数でEnlightnを実行する必要があります。これにより、通常、CIから除外される動的分析チェックを監視できます。
MacOSおよびLinuxシステムのみがEnlightnにサポートされています。現在、Windowsはサポートされていません。
Enlightnに貢献してくれてありがとう!貢献ガイドはここにあります。
私たちのサポートポリシーは、Enlightnドキュメントに記載されています。
Enlightn OSS(このGitHub Repoで)は、LGPL V3(または後の)ライセンスの下でライセンスされています。
Enlightn Proは、商業ライセンスの下でライセンスされています。