อยากทราบค่ะว่าคืออะไร แล้วถ้าเกิดขึ้นจะป้องกันยังไงค่ะ
อยากทราบค่ะว่าคืออะไร แล้วถ้าเกิดขึ้นจะป้องกันยังไงค่ะ
คืออาการเครื่องล้นครับ
มีผลทำให้ เครื่องเราทำงานได้ช้าลงอย่างมาก หรือหยดทำงานไปชั่วระยะนึง รุนแรงสุด คงต้องเริ่มระบบใหม่เลย
เป็นปัญหาที่แก้ไม่ได้ง่ายฮะ
A buffer overflow occurs when a program or process tries to store more data in a buffer (temporary data storage area) than it was intended to hold. Since buffers are created to contain a finite amount of data, the extra information which has to go somewhere can overflow into adjacent buffers, corrupting or overwriting the valid data held in them. Although it may occur accidentally through programming error.
เหมือนที่คุณ rx7 ตอบนะครับแต่เสริมอีกนิดนึงว่า สาเหตุส่วนใหญ่ของการเกิด buffer overflow นี้ส่วนใหญ่นั้นเป็นความผิดพลาดของ
โปรแกรมเมอร์เองเช่น การที่ไม่ได้จำกัดจำนวนตัวอักษร username แล้วเมื่อผู้ไม่หวังดีใส่ค่าเกินจำนวนมหาศาลก็จะทำให้หน่วยความจำ buffer
ที่มารองรับนั้นเกิดการล้น จนข้อมูลที่ล้นบางส่วนเกิดไปทับข้อมูลของโปรแกรมส่วนอื่นๆไป จากดังกล่าวทำให้เกิดปัญหาได้หลายทาง
-กรณีของ unix หรือ linux อาจจะเปิดสร้างให้เกิดช่องโหว่ในการเข้าถึงสิทธิของ Root ได้
-กรณีของระบบ Router ก็อาจจะทำให้ผู้ไม่หวังดีทำการเข้าถึงสิทธิในการเปลี่ยนเส้นทางการเดินทาง Traffic ได้
-กรณีของ Windows ก็เป็นที่รู้ๆกันอยู่คือไม่ว่าจะเป็น Worm Blaster หรือ Sasser ที่เป็นที่โดงดังไปทั่วโลกต่างก็อาศัยข้อบกพร่อง Buffer
Overflow เช่นกัน
อื่นๆอีกมากมาย
วิธีการแก้ไข
แก้ที่ต้นเหตุ 1: ต้องแก้จากตัวของโปรแกรมเมอร์ก่อนให้ พยายามเขียนโค้ดให้รัดกุมที่สุด
แก้ที่ต้นเหตุ 2: ควรจะพัฒนาระบบ address memory ใน CPU ใหม่ดังเช่นชิป Crusoe ของ Transmeta ที่มีระบบ NX (no execute)ซึ่งเป็น
ส่วนสำคัญในการขัดขวางการเกิดปัญหานี้
แก้ที่ปลายเหตุ: ติดตั้ง patch ต่างๆให้กับระบบตามที่มมีการแจ้งเตือน (วัวหายแล้วล้อมคอก)
clone 'em all
Suchas :::
ReceiveBufferOverflow หมายถึง ขนาดของบัฟเฟอร์ด้านรับเข้าข้อมูล (Receuve Buffer) ไม่เพียงพอกับขนาดของข้อมูลที่รับเข้ามา
Transmit Buffer Overflow หมายถึง บัฟเฟอร์ด้านส่งออกข้อมูลเต็ม ในขณะที่พยายามจัดเก็บข้อมูลใหม่ลงในบัฟเฟอร์
Actions : (View-Readers)
There are no names to display.