コンテンツにスキップ

Eclipse IDE

Aikido はプロジェクトを自動的にスキャンし、ハードコードされたシークレット(APIキー、トークン)や安全でないコードパターン(SQLインジェクション、パストラバーサルなど)を検出するため、問題を早期に発見してコードベースを安全に保つことができます。

ファイルを開いたり変更を保存したりするたびにスキャンが自動的に実行されるため、開発の早い段階で問題を発見しやすくなります。

セキュリティ上の問題が見つかると、コード内に直接ハイライト表示され、Aikido ウィンドウに一覧表示されます。

Eclipse で Help > Eclipse Marketplace... にアクセスし、検索バーで「Aikido」を検索します。「Install」をクリックします。

インストール後、Eclipse を再起動してください。

Aikido で Eclipse Integration Screen にアクセスし、トークンを作成します。

インストール後、Aikido Security View が Eclipse 内で自動的に開きます。開かない場合は、Window > Show View > Other... から Aikido を検索し、「Aikido Security」ビューを選択してください。Aikido Security ビューで Connect to Aikido をクリックし、トークンを入力します。

以下は、拡張機能が正しく動作しているかを確認するために使用できるサンプルの sample.java ファイルです。29行目に1件のSAST issue、23行目に1件の漏洩シークレットが検出されるはずです。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {
String connStr = "jdbc:sqlserver://myserver.database.windows.net:1433;" +
"database=mydb;" +
"user=myuser;" +
"password=$uperSecret123!@#;" +
"encrypt=true;" +
"trustServerCertificate=false;" +
"loginTimeout=30;";
String username = req.getParameter("username");
String unsafeQuery = "SELECT * FROM users WHERE username = '" + username + "'";
try (Connection conn = DriverManager.getConnection(connStr);
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery(unsafeQuery)) {
// Convert ResultSet to JSON-like structure
List<Map<String, Object>> resultList = new ArrayList<>();
int columnCount = result.getMetaData().getColumnCount();
while (result.next()) {
Map<String, Object> row = new HashMap<>();
for (int i = 1; i <= columnCount; i++) {
row.put(result.getMetaData().getColumnName(i),
result.getObject(i));
}
resultList.add(row);
}
res.setStatus(200);
res.setContentType("application/json");
res.getWriter().write(new Gson().toJson(resultList));
} catch (Exception e) {
res.setStatus(500);
res.getWriter().write("Error: " + e.getMessage());
}
}
}

Aikido Eclipse プラグインをアンインストールするには:

Help > Eclipse Marketplace... > Installed にアクセスし、Aikido Security を探して Uninstall をクリックします