次のような商用の安全なコードレビューツールを使用したことがある方のために:
または、次のようなフリーまたはオープンソースの同等物:
一般に、DE内のプラグイン/アドオン(例:Fortify Secure Coding Plugin for Eclipse)、スタンドアロンのファットアプリ(例:Audit Workbench)、Webアプリケーション(例:Armorize、Fortify Teamserver)、完全なビルドサーバーソリューションなどを好みますか?どうして?
答えはそれほど多くありませんが、各製品の機能セットと各インターフェイスの使用可能性に大きく依存すると思います。
例えば。 FortifyのIDEプラグイン、fatapp、およびwebappは、サポートされている機能では同等ではありません。さらに、FortifyのEclipseプラグインは、独自のVisualStudioプラグインと同等ではありません。
ただし、原則として、他のすべてが等しいと仮定すると、私の好みは次のようになります。
注、上記は主に、手動のコードレビューではなく、自動化されたコードスキャナーに依存していることに注意してください。それが必要な場合もありますが、通常は通常十分ではありません。
開発ライフサイクルのアプローチに応じて、どちらか一方を選択する必要があります。たとえば、通常、スクラムプロジェクトでは、IDEベースのものは、バックログアイテムを追加して、コードをスプリントごとに1回、または1日1回スキャンすることは非常に有用です。
一方、WaterfallまたはSpiralで開発している場合は、スタンドアロンバージョンのツールを使用する方が、多くのパッケージを統合するための賢い選択になります。
AviDが開発者以外に言及したように、スタンドアロンバージョンの方が良いでしょう
MavenプラグインとTeam Foundationプラグインの簡単なタッチを使用して、スタンドアロンとしてFortifyを操作したことで、AviDと同様の設定ができました。
スタンドアロンは、完全なコードベースを提供できる場合は非常に便利です。スタンドアロンは、すべての依存関係がある限り、すばやく動作します。
定期的なテストシナリオを実装するには、プラグインが最適です。プラグインを組み込んで、コンパイルとビルドでセキュリティの問題を自動的にレビューします。
管理にはレポートと傾向分析が必要なので、管理サーバーが必要です。
tl; dr-AviDが言ったこと、かなり:-)
私の経験に基づくと、スタンドアロンアプリはおそらくコード監査人やコードレビュー担当者にとって最も素晴らしいものになるでしょう。
Webベースのインターフェースの利点はコラボレーションにあります。アプリケーションをすべて監査し、静的分析の警告をトリアージして分析し、警告がバグであるかどうかの分析とその重大度を入力するチームがある場合など。Webベースのインターフェースは、そのために最適です。
私は個人的に開発者が何を好むのかわかりません。 IDEプラグインは、迅速なフィードバックを提供する機能と、開発者がすでに使用しているワークフローとの統合のため、利点があると思いますが、私はここで推測しています。