Buffer Overflow Attacks: Types and Prevention Strategies