2016-08-17 18 views
5

最近、パスワードが処理されたコード内のすべての場所がStringから新しいPasswordクラスに変更されました。 Password.toString()メソッドは、[********]を印刷するだけです。パスワードを取得したい場合はPassword.getPassword()に電話しなければなりません。このようにして、私は、パスワードが誤ってログファイルに書き込まれることはないと確信できます。私の変更passwordはタイプStringであったので、必要に応じて、それがフォーマットされた前特定の型の暗黙的な使用方法を見つける方法

String.format("user:%s", password); 

:私はこのように見えるいくつかの行を変更するために逃した変更の際

。しかし、私の変更後password[*******]と表示されました。それはまさに私が意図したものです。しかし、今私はこれらの場所をすべて自動的に見つけたいと思っています。

)(私はfb-contribプラグイン(ITU_INAPPROPRIATE_TOSTRING_USE)とfindbugsを試してみましたが、それはString.Formatの内Password.toString()の暗黙の使用を見つけることができませんでした。

他のfindbugs contribプロジェクトやこれらのコードの場所を見つけることができるその他の静的コードアナライザを知っている人はいますか?

答えて

0

ITUは、コンテンツの値を推測するために使用されるtoString()の使用法を見つけます。たとえば、値を解析する場合や、他の文字列を構築する場合に使用します。検出器は、多くの場合、 'デバッグ'出力と見なされるべきであるため、本当にtoString()の内容に頼るべきではないことを知らせるためにあります。 (あなたがここに見るように)。

常に有効なtoString()の使用をチェックするだけで、多くの誤検出が発生する可能性があります。

いいえ、検出器はわかりませんが、それを書くのは非常に簡単です。

関連する問題