Bufferoverloop

Een bufferoverloop (Engels: buffer overflow) is een benaming voor twee problemen die zich bij computers kunnen voordoen.

  • Gegevens stromen sneller binnen dan ze verwerkt kunnen worden.
  • Er worden data geschreven in een buffer die daarvoor te klein is. Dit veroorzaakt doorgaans onvoorspelbare problemen in de werking van het programma, tenzij de bufferoverloop nauwkeurig wordt ontworpen om een bepaald effect te bereiken.

Het eerste probleem kan zich voordoen wanneer een apparaat (bijvoorbeeld een computer) gegevens stuurt naar een ander apparaat (bijvoorbeeld een printer). De printer kan de ontvangen gegevens misschien bufferen voordat ze geprint worden, maar de grootte van de buffer is beperkt. Bij seriële communicatie is het gebruikelijk dat de ontvanger met ^Q en ^S aan de zender laat weten dat het zenden gepauzeerd moet worden.

Het tweede probleem doet zich voor als er een buffer van beperkte grootte gedeclareerd is, waarin gegevens regel voor regel gelezen worden, wanneer een regel langer blijkt te zijn dan de buffer. Een goed geschreven programma zorgt er in zo'n geval voor dat de regel bij ontvangst wordt opgesplitst.

Fouten in zulke programma's, bovendien nog meer in het geval van besturingssystemen, worden soms misbruikt door wormen, virussen en hackers om ongeoorloofde toegang te krijgen tot computersystemen.


From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy