ด้วย tar ของ GNU มันเป็นเรื่องง่าย
tar -xvf untrusted_file.tar
ในไดเรกทอรีว่าง GNU tar โดยอัตโนมัติแถบชั้นนำ/
ชื่อสมาชิกเมื่อแยกเว้นแต่อย่างชัดเจนไม่ได้บอกอย่างอื่นที่มีตัวเลือก--absolute-names
GNU tar ยังตรวจพบเมื่อการใช้งาน../
จะทำให้ไฟล์ถูกแตกออกจากไดเรกทอรีระดับบนสุดและวางไฟล์เหล่านั้นในไดเรกทอรีระดับบนสุดแทนเช่นส่วนประกอบfoo/../../bar/qux
จะถูกแยกเช่นเดียวกับbar/qux
ในไดเรกทอรีระดับบนสุดแทนที่จะbar/qux
เป็นหลักของไดเรกทอรีระดับบนสุด . GNU tar ยังดูแลการเชื่อมโยงสัญลักษณ์ที่ชี้อยู่นอกไดเรกทอรีระดับบนสุดเช่นfoo -> ../..
และfoo/bar
จะไม่bar
ถูกแยกออกนอกไดเรกทอรีระดับบนสุด
โปรดทราบว่าสิ่งนี้ใช้ได้เฉพาะกับ (GNU tar รุ่นล่าสุดอย่างเพียงพอ) (เช่นเดียวกับการใช้งานอื่น ๆ เช่น * BSD tar และ BusyBox tar) การใช้งานอื่น ๆ บางอย่างไม่มีการป้องกันดังกล่าว
เนื่องจากลิงก์สัญลักษณ์การป้องกันที่คุณใช้จะไม่เพียงพอ: ไฟล์เก็บถาวรอาจมีลิงก์สัญลักษณ์ที่ชี้ไปยังไดเรกทอรีภายนอกต้นไม้และแยกไฟล์ในไดเรกทอรีนั้น ไม่มีวิธีใดที่จะแก้ปัญหานั้นตามชื่อสมาชิกอย่างแท้จริงคุณต้องตรวจสอบเป้าหมายของลิงก์สัญลักษณ์
โปรดทราบว่าหากคุณกำลังแยกไปยังไดเรกทอรีที่มีลิงก์สัญลักษณ์อยู่แล้วการรับประกันอาจไม่ถูกระงับอีกต่อไป