import java.nio.charset.StandardCharsets;

public class InjeksiAman {
    public static void main(String[] args) throws Exception {
        // Masukan yang sama persis dengan versi rentan.
        String berkasPilihan = "laporan.txt; echo Perintah-Tersisip";

        // POLA AMAN: tanpa shell; masukan menjadi satu argumen utuh.
        ProcessBuilder pb = new ProcessBuilder("/usr/bin/wc", "-c", berkasPilihan);
        pb.redirectErrorStream(true);
        Process anak = pb.start();
        String keluaran = new String(anak.getInputStream().readAllBytes(),
                StandardCharsets.UTF_8);
        int kode = anak.waitFor();

        System.out.println("argumen  : [" + berkasPilihan + "]");
        System.out.println("exit code: " + kode);
        System.out.println("keluaran :");
        System.out.print(keluaran);
    }
}
