CXX.SV.PWD.PLAIN.LENGTH.ZERO

ゼロ文字の長さでパスワードを設定しようとしている

アプリケーションがゼロ文字の長さのプレーンテキストパスワードを設定しようとするときに、Klocwork は CXX.SV.PWD.PLAIN.LENGTH.ZERO の欠陥を報告します。

脆弱性とリスク

認証プロセス中に、ユーザーがゼロ文字の長さのパスワードを提示すると、悪意のある攻撃者は、アプリケーションやシステムを簡単に侵害する可能性があります。

軽減と防止

15 文字以上のパスワードを設定することで、強力なパスワードを使用してください。

脆弱コード例

コピー
#include <QtSql/QSqlDatabase>
void Database::connect(Ui::MainWindow *ui){
    /* Set connections */
    this->qSqlDatabase.setUserName("J0a1m8");
    this->qSqlDatabase.setPassword("");
}

Klocwork は、5 行目で CXX.SV.PWD.PLAIN.LENGTH.ZERO の欠陥を報告し、「ゼロ文字の長さでパスワードを設定しようとしています。長さを 15 文字以上に増やすことを検討してください」を示します。Database::connect メソッドでは、認証中に、ゼロ文字の文字列が setPassword API に直接渡されています。

修正コード例

コピー
#include <QtSql/QSqlDatabase>
void Database::connect(Ui::MainWindow *ui){
    /* Set connections */
    QString pwd = "J0a1m8welCome6469";
    this->qSqlDatabase.setUserName("mojito");
    this->qSqlDatabase.setPassword(pwd);
}

setPassword API に提示されるパスワードの長さが 15 文字以上であるため、Klocwork は CXX.SV.PWD.PLAIN.LENGTH.ZERO の欠陥を報告しなくなります。