บัฟเฟอร์ล้นคืออะไร

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

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

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

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