Sự cố tràn bộ đệm và heap về cơ bản là do ghi nhiều dữ liệu vào một vùng bộ nhớ quá nhỏ để chứa tất cả dữ liệu - khiến dữ liệu được ghi vượt quá phạm vi phân bổ và làm mờ bất cứ thứ gì nằm sau nó một cách hợp lý ký ức. Trong trường hợp tràn chồng, đây có thể là địa chỉ trả về cho hàm và trong trường hợp tràn heap, điều này có thể bao gồm các con trỏ hàm ảo từ các đối tượng C ++ khác trên heap. Trong cả hai trường hợp, kẻ tấn công có thể sử dụng lỗ hổng để kiểm soát quá trình khi hàm bị ghi đè trở lại hoặc đối tượng heap bị ghi đè được sử dụng.
Các ứng dụng web được viết bằng PHP, C #, VB, VB.NET, ASP.NET, Ruby-on-rails, javascript và máy chủ phía máy chủ là các ứng dụng được quản lý và không thể chấp nhận được các lỗ hổng tham nhũng bộ nhớ như tràn bộ đệm hoặc tràn bộ đệm gây ra bởi mã ứng dụng web xấu. Tràn bộ đệm có xu hướng bảo toàn các ứng dụng C / C ++, mặc dù các ngôn ngữ "bản địa" ít phổ biến khác như Dephi và Fortran cũng dễ bị ảnh hưởng.
Nếu bạn là nhà phát triển web, lớp lỗ hổng quan trọng nhất mà bạn cần xem xét là lỗi SQL và các vấn đề gây ra bởi không phù hợp bao gồm / eval / file-write trong mã máy chủ có thể cho phép một chuỗi hoặc tệp được truyền qua người dùng cuối cùng được coi là mã trên máy chủ. Thật không may cho các nhà phát triển web, các kiểu tấn công này có xu hướng hiệu quả hơn và dễ thực hiện hơn nhiều so với các cuộc tấn công tràn bộ đệm vào mã gốc và do đó, tác động của việc không hiểu đầy đủ về bảo mật vì nhà phát triển web có thể đau đớn hơn nhiều hơn là không hiểu bảo mật như một nhà phát triển bản địa.