Журнал InfoWorld составил список самых популярных ошибок, которые совершают программисты при написании кода. По мнению экспертов, именно благодаря этим ошибкам злоумышленники получают несанкционированный доступ в систему, могут скопировать учётные данные пользователей и т.д. Итак, вот список главных ошибок. 1. Вы доверяете коду неизвестного происхождения. В процессе написания программы почти каждый разработчик копирует фрагменты кода со стороны. Часто бывает так, что сторонние библиотеки не обеспечивают достаточного уровня безопасности. Последний пример такого рода — библиотека OpenSSL, в которой несколько месяцев назад обнаружили критическую уязвимость. Что делать в такой ситуации? Конечно, писать всё с нуля — не выход, но нужно, по крайней мере, более тщательно относиться к заимствованию кода. 2. Указание паролей открытым текстом. Часто разработчики в целях тестирования указывают пароли для прямого доступа к сервису, а потом забывают удалить их. Такие пароли, фактически, являются бэкдорами. Они предоставляют неограниченный доступ в систему, и их могут узнать посторонние люди. 3. Отсутствие проверки входящих значений. SQL-инъекции и удалённые выполнение кода — самые популярные и опасные уязвимости нашего времени. Такая ситуация возникла, потому что веб-приложения доверяют любым данным, полученным из внешнего источника через веб-форму. Манипулируя содержимым SQL-запроса, злоумышленник может заставить СУБД выполнить действие, которое разработчики не предусмотрели: например, скопировать все записи с именами пользователей и паролями. 4. Отсутствие защиты данных. Отсутствие шифрования данных на сервере — одна из самых распространённых ошибок разработчиков. Нужно защищать всю чувствительную информацию: имена, пароли, персональные идентификаторы пользователей и проч. Простого использования шифрования недостаточно, нужно ещё грамотно его реализовать. 5. Игнорирование сетевого уровня OSI 8. В стандарте OSI такого уровня не существует, но его часто упоминают, имея в виду людей, которые будут использовать ваше программное обеспечение. Нужно понимать, что зачастую взлом ПО осуществляется не через баги, а через людей, которые пользуются вашей программой. Речь идёт о социальной инженерии. Разработчик должен сделать пользовательский интерфейс максимально простым и понятным, чтобы никого нельзя было ввести в заблуждение.