Це робиться шляхом впровадження будь-яким чином в програму даних або коду в такі місця, що програма сприйме їх як «свої». Деякі уразливості з'являються через недостатню перевірку даних, що вводяться користувачем, і дозволяють вставити в інтерпретований код довільні команди (SQL-ін'єкція, XSS). Інші уразливості з'являються через більш складні проблеми, такі як запис даних в буфер без перевірки його меж (переповнення буфера). Отже, основними причинами вразливостей є: Складність: великі, складні системи збільшують ймовірність дефектів і ненавмисних точок доступу.