переполнения стека и кучи буфера по существу вызваны записью большого количества данных в область памяти, которая слишком мала, чтобы содержать все данные-в результате чего данные должны быть записаны за пределы выделения и blatting все, что находится после него логически в памяти. В случае переполнения стека это может быть возвращаемый адрес функции, а в случае переполнения кучи это может включать указатели на виртуальные функции из других объектов C++ в куче. В любом случае злоумышленник может использовать эту уязвимость для управления процессом при возврате перезаписанной функции или при использовании перезаписанного объекта кучи.
WebApplications, написанный на PHP, с#, VB, VB.NET, ASP.NET Руби-на-рельсах, серверного JavaScript и JSP управляемых приложений, и не succeptable к повреждению памяти уязвимостей, таких как переполнение буфера стека или кучи переполнение буфера, вызванное плохой кода web-приложений. Переполнение буфера, как правило, сохранить C / C++ приложения, хотя и другие менее распространенные "родные" языки, такие как Dephi и Fortran также восприимчивы.
Если вы веб-разработчик, то наиболее важным классом уязвимостей, на которые вам нужно обратить внимание, являются SQL-инъекции и проблемы, вызванные некорректным включением/eval/file-writes в серверный код, который может позволить строке или файлу, переданному Пользователем, в конечном итоге рассматриваться как код на сервере. К сожалению, для веб-разработчиков, эти типы атак, как правило гораздо более эффективны и гораздо проще, чем атаки переполнения буфера на машинный код, и, следовательно, влияние неполного понимания безопасности как веб-разработчика может быть гораздо более болезненным, чем не понимание безопасности как собственного разработчика.