Что каждый программист должен знать о безопасности

Многие начинающие программисты задаются вопросом: «каким минимумом знаний по безопасности должен обладать каждый разработчик или студент IT-шник?». Попробуем ответить на этот вопрос.

Вещи, которые всегда нужно держать в уме, если вы хотите создать безопасное приложение:

  • Не доверяйте входным данным! Проверяйте входные данные из ненадёжных источников — используйте белые списки, а не чёрные.
  • Планируйте безопасность с самого начала — это не то, чем можно заняться напоследок.
  • Делайте своё приложение простым — сложность увеличивает вероятность дыр в безопасности.
  • Сведите вашу поверхность атаки к минимуму.
  • Убедитесь, что ошибка во время работы приложения не поставит под угрозу его безопасность.
  • Обеспечивайте безопасность приложения на каждом этапе разработки.
  • Придерживайтесь принципа наименьших привилегий.
  • Используйте моделирование угроз.
  • Разделяйте привилегии, чтобы было проще отследить источник проблемы.
  • Хранить секретные данные сложно, а все секретные данные, спрятанные в коде, быстро перестанут быть секретными.
  • Не создавайте свои механизмы шифрования.
  • Использование одного лишь шифрования не делает ваше приложение абсолютно безопасным — злоумышленники найдут другое слабое место, ведь безопасность любой системы всегда равна безопасности самого слабого звена.
  • Знайте и помните о переполнении буфера и о том, как от него защититься.

Существует несколько замечательных книг и статей на тему того, как сделать приложение безопасным:

Обучите ваших разработчиков лучшим практикам безопасности:

Хотите узнать о том, как защитить своё веб-приложение в более развёрнутой форме? Тогда загляните в нашу статью, там всё подробно расписано.

Источник: Stack Overflow

Ещё интересное для вас:
Тест: чьё это рабочее место? Угадываем айтишников по их столам
Тест: что вы знаете о работе мозга?
Тест: какой язык программирования вам стоит выбрать для изучения?