問題タブ [static-analysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaで外部クラスを使用しない内部クラスの何が問題になっていますか?
Eclipse で静的アナライザーを使用してコードを調べています。1 つのクラス foo には、内部クラス bar があります。次のエラーが表示されます。
なぜこれがエラーになるのですか?外側のクラスが内側のクラスを使用している限り、この情報隠蔽を有用かつ正確にするのに十分ではないでしょうか?
内部クラスは静的ではありません。
c - コンパイラ警告を使用して、定数 1 の左シフトのオーバーフローをキャッチしますか?
私たちは Linux カーネル内でコードを書いているので、できる限り試してみましたが、PC-Lint/Flexelint を Linux カーネル コードで動作させることができませんでした。組み込みシンボルなどが多すぎます。しかし、それは副次的な問題です。
gcc から始めて、さまざまなコンパイラがありますが、その他のコンパイラもあります。彼らの警告オプションは時間の経過とともに強化されており、かなり強力な静的分析ツールでもあります.
捕まえたいのはこちら。はい、「マジック ナンバーがない」、「ビット シフトに注意する」など、コード レビューで見つけやすいいくつかの点に違反していることはわかっていますが、それはたまたまコードのそのセクションを見た場合に限られます。とにかく、ここにあります:
さらに更新された問題の説明 - バーが 16 に制限されていても、まだ問題があります。明確にすると、問題は暗黙的な int 型の定数であり、計画外に、すべての計算が同じサイズと符号で実行されるという規則に違反する複雑な式になります。
問題: '1' は long long ではありませんが、小さな値の定数として、デフォルトで int になります。したがって、bar の実際の値がたとえば 16 を超えない場合でも、(1<<bar)
式はオーバーフローし、計算全体が台無しになります。
おそらく正しい解決策: 代わりに 1ULL を書き込みます。
この (改訂された) 問題を指摘するよく知られたコンパイラとコンパイラの警告フラグはありますか?
java - Fortify Source Analyzer と Apache Lenya
学校の研究プロジェクトで Fortify Source Code Analyzer を使用して、オープン ソース Java Web アプリケーションのセキュリティをテストしようとしています。現在、Apache Lenya に取り組んでいます。私は最後の安定版リリース (Lenya v2.0.2) を使用しています。
ルート ディレクトリ内には、build.sh
. tools/bin
このファイルは、リリース (フォルダー内)に同梱されている Ant のバージョンを使用して Lenya をビルドするために呼び出されます。を実行すると、問題なく Lenya をビルドできます./build.sh
。したがって、Fortify で次のコマンドを実行すると機能すると想定されます。
ただし、実行しようとすると:
私は得る:
ビルド ID Lenya が見つかりません。
buid.shファイルを調べたところ、現在の ant ホーム、クラスパス、および ant オプション変数をリセットし、ant ビルド コマンドを実行し、値をデフォルトにリセットしているだけであることがわかりました。そのため、スクリプトを実行して実行する代わりに、すべての変数を手動で (スクリプトを使用せずに) リセットしました。
それから私は走った:
しかし、同じエラーが発生しました。これが私が何か間違ったことをしているからなのか、それとも Fortify が正しく実行していないためなのかはわかりません。どんな洞察も素晴らしいでしょう。
c# - FxCop - CA1034 エラー - なぜ?
FxCop 1.36 で静的コード分析を実行していますが、警告 CA1034 : NestedTypesShouldNotBeVisible が表示され続けます。
親クラスが内部またはプライベートとして宣言されているかどうかはわかりますが、パブリックです。TimerReset を public と宣言するのはなぜ悪いのでしょうか?
私は何かを見逃していますか、それとも無視できるものですか?
ご意見ありがとうございます。
この警告の原因となっているコードの抜粋を次に示します。
c# - C# の構文チェッカー
Java の Checkstyle のような C# の構文チェッカーを探しています。使用できるツールの推奨事項はありますか? 理想的には、Visual Studio 2008 へのプラグインが必要です。
database-design - データベース設計のための静的分析ツール
データベース層の静的分析ツールを探しています。PLSQL、TSQLコードを確認するためのいくつかの回答 を得ました。テーブルとその列の命名規則、外部キー制約とトリガーなどのデータベース設計を確認するために利用できるオプションは何ですか.
ApexSQL Enforceについて説明しているMSDN の記事がありますが、主に SQLServer 向けです。
c++ - プロプライエタリAPI用の静的ソースコード分析ツールを開発していますか?
C++上に構築された独自のAPIがあります。そのため、C ++のすべての機能を使用し、独自のAPIを備えています。C ++ APIとまったく同じように機能するAPIがいくつかあります(mallocにはStrallocがあります)。これらのAPIは、パフォーマンス上の理由から提供されています。
C ++で利用できる静的コードアナライザーはたくさんありますが、どれも使用できません。プロプライエタリAPIを使用してコードで実行できる静的コードアナライザーが必要です。
コードアナライザーの開発を開始するにはどうすればよいですか。C++で利用できるような機能指向である必要はないかもしれません。未使用の変数の報告、バッファオーバーフロー、メモリリークなどの基本的なことから始めたいと思います。
任意のガイダンスをいただければ幸いです。
[更新]私が探していたものである次の質問を見つけました。違いは、Javaの代わりにプロプライエタリAPIに関するものです。これまでにいくつか良い答えがありましたが、このような開発を行ってきた人々からもっと知りたいと思います。
java - FindBugsを使用してメソッドの引数への割り当てを強制するにはどうすればよいですか?
パラメータの前に何千ものfinalキーワードをコードに散らかす代わりに、FindBugsを使用してコードを強制しようとしています。
これを行うことは不可能のようですが、方法があるはずですよね?
ありがとう
java - FindBugs と Maven
ファイルごとではなく重大度ごとにバグがグループ化された FindBugs レポートを Maven に生成してもらいたいと思います。そうすれば、最も深刻なバグにすぐに集中できます。Eclipse 用の FindBugs プラグインで同様の機能を見てきました。これはMavenで可能ですか?
c# - ASP.NET / C# SQL インジェクション用の Microsoft ソース コード アナライザー (MSSCASI_ASP) に相当しますか?
Microsoft Source Code Analyzer for SQL Injection (MSSCASI_ASP)は、従来の ASP VBScript コード用の静的コード アナライザーであり、SQL インジェクションの脆弱性が存在する可能性のあるページを特定するのに役立ちます。
そのツールは vbscript のみをサポートしているようで (「このツールは VBScript で記述された ASP コードのみを理解します」)、VBscript についても Classic ASP のみをサポートしていると思います。ASP.NET コード、特に C# ASP.NET コードを操作できる同様のアプローチのツールがあるかどうか疑問に思っています。