SV.UMC.JDBC
JDBC 2.0 API の新しい DataSource インターフェイスは、データソースへの優れた接続方法を提供します。DriverManager.getConnection(...) の呼び出しは避けます。
脆弱性とリスク
JDBC 1.0 を使用したデータベースマネージャによるデータベース接続の獲得および解放は、アプリケーションのパフォーマンスに影響を与えます。この影響は、データベースリソースマネージャーのプロセスによるオブジェクトの作成および破壊におけるオーバーヘッドが原因です。
Klocwork セキュリティ脆弱性 (SV) チェッカーは、潜在的に危険なデータを生成する呼び出しを特定します。このような呼び出しは安全でないソースと考えられます。ユーザーは攻撃者になる可能性があり、ヒューマンエラーを取り込む可能性があるため、安全でないソースはユーザーが指定した任意のデータである可能性があります。
軽減と防止
DataSource オブジェクトを使用したデータソース接続方法が推奨されます。
例 1
コピー
protected void doPost(HttpServletRequest req,
HttpServletResponse resp) throws ServletException {
String name = req.getParameter("userName");
String pswd = req.getParameter("passwd");
Connection conn = doGetConnection(name, pswd);
// ...
}
private Connection doGetConnection(String name,
String pswd) {
Connection conn = null;
try {
return DriverManager.getConnection("localhost:3300",
name, pswd);
} catch (SQLException e) {
// ...
}
return conn;
}
SV.UMC.JDBC が 29 行目の呼び出しに対して報告されています。アプリケーションが DriverManager.getConnection() を直接呼び出すことは避ける必要があります。