Skip to main content

ตัวชี้ที่ห้อยต่องฉาดคืออะไร?

ตัวชี้ห้อยต่องฉาดเป็นข้อบกพร่องในการเขียนโปรแกรมที่เกิดขึ้นในการเข้ารหัสเชิงวัตถุเมื่อวัตถุตัวชี้ชี้ไปที่วัตถุอื่นที่ไม่มีอยู่อีกต่อไปในอินสแตนซ์นี้ตัวชี้ไม่ใช่ตัวชี้เมาส์ แต่เป็นวัตถุตัวชี้ที่มีจุดประสงค์เพื่อส่งผู้ใช้ไปยังวัตถุอื่นข้อบกพร่องนี้สร้างข้อบกพร่องที่ละเอียดอ่อนซึ่งอาจแย่ลงเมื่อเวลาผ่านไปและยังนำเสนอปัญหาด้านความปลอดภัยที่แฮ็กเกอร์ที่มีทักษะสามารถโจมตีได้ตัวชี้ที่ห้อยต่องฉาดเกิดขึ้นเมื่อโปรแกรมเมอร์ลบวัตถุที่ชี้ไปที่ แต่ไม่ลบตัวชี้ตัวเอง

ในการเข้ารหัสเชิงวัตถุซึ่งการเข้ารหัสถูกแยกออกเป็นวัตถุมีอินสแตนซ์ที่เรียกว่าตัวชี้อินสแตนซ์ตัวชี้ถูกวางไว้ที่ไหนสักแห่งในโปรแกรมโดยทั่วไปในเมนูและนำผู้ใช้ไปยังวัตถุอื่นตัวอย่างเช่นหากผู้ใช้ไฮไลต์ส่วนของเมนูเมนูอื่น mdash;แบบเลื่อนลง mdash;ปรากฏ.สิ่งนี้ช่วยให้โปรแกรมเมอร์สามารถตั้งค่าวัตถุหลายอย่างในส่วนเดียวโดยไม่ต้องเบียดเสียดส่วน

ข้อผิดพลาดตัวชี้ห้อยต่องฉาดจะปรากฏขึ้นเมื่อโปรแกรมเมอร์ลบวัตถุที่ชี้ไปหากโปรแกรมเมอร์ยังลบอินสแตนซ์ตัวชี้จะไม่มีปัญหาหากโปรแกรมเมอร์ลืมและเก็บตัวชี้ในการเข้ารหัสสิ่งนี้จะสร้างตัวชี้ที่ห้อยต่องและนำเสนอปัญหาด้านคุณภาพและความปลอดภัย

ในแง่ของคุณภาพตัวชี้ที่ห้อยอยู่ดูเลอะเทอะและสร้างข้อบกพร่องที่ละเอียดอ่อนนี่เป็นเพราะโปรแกรมไม่ทราบว่าจะทำอย่างไรเพราะมันถูกบอกให้ทำอะไรบางอย่าง แต่ไม่สามารถทำได้เพราะวัตถุหายไปการกระทำนี้สร้างรหัสสุ่มหรือเสื่อมโทรมรหัสในรูปแบบเล็ก ๆ ที่บอบบางซึ่งยากต่อการตรวจจับข้อบกพร่องเหล่านี้อาจมีขนาดเล็กเท่ากับการทำให้โปรแกรมเคลื่อนที่ช้าลงเล็กน้อย แต่ในที่สุดอาจทำให้โปรแกรม mdash;และแม้แต่คอมพิวเตอร์ mdash;การไม่ทำงาน

โปรแกรมส่วนใหญ่ที่มีพอยน์เตอร์ห้อยจะทำงานในขั้นต้นและอาจทำงานต่อไปเป็นเวลาหลายเดือนหรือหลายปีก่อนที่ข้อผิดพลาดจะชัดเจนแม้แต่โปรแกรมที่ทำการคำนวณซึ่งหมายถึงตัวชี้ห้อยอยู่ในสูตรก็อาจยังสามารถทำการคำนวณได้อย่างง่ายนี่คือหนึ่งในเหตุผลที่การค้นหาพอยน์เตอร์ที่ห้อยต่องแก่งอาจเป็นเรื่องยาก

ถึงปี 2007 ตัวชี้ห้อยต่องฉาดได้สร้างปัญหาด้านความปลอดภัยในทางทฤษฎีเท่านั้นWatchfire reg;จากนั้น บริษัท ซอฟต์แวร์จึงสร้างโปรแกรมที่แสดงให้เห็นว่าพอยน์เตอร์ห้อยต่องแก่งสามารถใช้ประโยชน์ได้อย่างไรทำให้ความเสี่ยงด้านความปลอดภัยเป็นจริงได้อย่างไรแฮ็กเกอร์สามารถแทรกซึมโปรแกรมผ่านข้อผิดพลาดนี้และสามารถฉีดรหัสของตัวเองลงในโปรแกรมที่มีข้อบกพร่อง