# Общие соображения

В каждой системе встречаются уязвимости, поэтому в сфере безопасности традиционный подход часто состоит в балансе между риском и удобством. Разработчик поддерживал бы чрезмерный уровень безопасности, если бы каждая переменная, которую отправил пользователь, требовала двух форм биометрической проверки: сканирования сетчатки глаза и отпечатков пальцев. Потребовалось бы полчаса на заполнение сложной формы, которая побудила бы пользователей на поиск способов обойти защиту.

Взвешенная защита часто ненавязчива: она одновременно поддерживает достаточный уровень безопасности, не мешает пользователю работать и не перегружает автора кода чрезмерной сложностью. Отдельные атаки на системы безопасности совершают только за счёт брешей в таких системах с чрезмерной защитой, которая постепенно разрушается и становится уязвимой.

Пословица, которую лучше бы запомнить: где тонко, там и рвётся — надёжность системы зависит от надёжности самого слабого звена. Связь записей лога транзакций с пользователями сильно снижается, если тщательно логируется время каждой транзакции, место, тип операции и другая информация о транзакции, но пользователь проверяется только на основе одного блока cookie.

Разработчики знают, что тестирование не выявит каждую уязвимость, даже при проверке простейших страниц. Предполагаемые входные данные не будут соответствовать вводу, который отправил недовольный сотрудник, взломщик с месяцами свободного времени или домашний кот, который ходит по клавиатуре. Поэтому на код лучше посмотреть логически, чтобы увидеть, где введут неожиданные данные, а затем проследить, как данные изменяются, сокращаются или дополняются.

В интернете часто ищут славы за счёт взлома кода, разрушения сайта, публикации неуместного материала или другими способами делают день разработчика «интереснее». Неважно, идёт речь о маленьком сайте или о портале, сервер становится мишенью только потому что доступен для подключений. Программы-взломщики не смотрят на размер, а слепо перебирают IP-адреса в поисках жертвы. Разработчики следят за безопасностью кода, чтобы предотвратить попытки злоумышленников обойти защиту.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open