// [CRUCIBLE-SEED]
// category: sql_injection
// severity: critical
// language: java
// expected: SQL injection via String.format building ORDER BY clause

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class ProductSearch {
    private Connection conn;

    public List<String> searchProducts(String keyword, String sortColumn) throws SQLException {
        // Vulnerable: sortColumn injected into ORDER BY without validation
        String sql = String.format(
            "SELECT name FROM products WHERE name LIKE '%%%s%%' ORDER BY %s",
            keyword, sortColumn);
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(sql);
        List<String> results = new ArrayList<>();
        while (rs.next()) results.add(rs.getString("name"));
        return results;
    }
}
