Dengan GNU tar, sederhana saja
tar -xvf untrusted_file.tar
dalam direktori kosong. Tar GNU secara otomatis menghapus /
nama anggota terkemuka saat mengekstraksi, kecuali secara eksplisit tidak diberitahu sebaliknya dengan --absolute-names
opsi . Tar GNU juga mendeteksi kapan penggunaan ../
akan menyebabkan file diekstraksi di luar direktori tingkat atas dan menempatkan file-file itu di direktori tingkat atas, misalnya komponen foo/../../bar/qux
akan diekstraksi seperti bar/qux
dalam direktori tingkat atas daripada bar/qux
di induk direktori tingkat atas . GNU tar juga menangani tautan simbolik yang menunjuk di luar direktori tingkat atas, misalnya foo -> ../..
dan foo/bar
tidak akan menyebabkan bar
diekstraksi di luar direktori tingkat atas.
Perhatikan bahwa ini hanya berlaku untuk (versi terbaru dari) tar GNU (serta beberapa implementasi lainnya, misalnya * BSD tar dan tar BusyBox). Beberapa implementasi lain tidak memiliki perlindungan seperti itu.
Karena tautan simbolis, perlindungan yang Anda gunakan tidak akan cukup: arsip dapat berisi tautan simbolis yang menunjuk ke direktori di luar pohon dan mengekstrak file di direktori itu. Tidak ada cara untuk menyelesaikan masalah itu hanya berdasarkan nama anggota, Anda perlu memeriksa target tautan simbolik.
Perhatikan bahwa jika Anda mengekstraksi ke direktori yang sudah berisi tautan simbolik, jaminan mungkin tidak lagi berlaku.