Spec-Zone.ru › CodeIgniter 4

Рекомендации по безопасности

Мы серьезно относимся к безопасности. CodeIgniter включает в себя ряд функций и методов, которые либо обеспечивают соблюдение хороших практик безопасности, либо позволяют легко их соблюдать.

Мы уважаем Open Web Application Security Project (OWASP) и стараемся следовать их рекомендациям.

Следующее содержимое взято из OWASP Top Ten Cheat Sheet, где определены основные уязвимости веб-приложений. Для каждой уязвимости мы предоставим краткое описание, рекомендации OWASP и способы решения проблем с помощью CodeIgniter.

A1 Внедрение

Внедрение — это ненадлежащее вставка части или полного данных через входные данные клиента в приложение. Векторы атак включают SQL, XML, ORM, код и переполнение буфера.

Рекомендации OWASP

  • Представление: установка правильного типа контента, набора символов и языка
  • Отправка: валидация полей и предоставление обратной связи
  • Контроллер: очистка входных данных; положительная валидация входных данных с использованием правильного набора символов
  • Модель: параметризованные запросы

Реализации CodeIgniter

  • Библиотека HTTP обеспечивает фильтрацию входных полей и метаданные контента
  • Библиотека валидации форм

A2 Слабая аутентификация и управление сессиями

Недостаточная аутентификация или неправильное управление сессиями могут привести к тому, что пользователь получит больше привилегий, чем ему положено.

Рекомендации OWASP

  • Представление: валидация аутентификации и роли; отправка токена CSRF с формами
  • Проектирование: использование только встроенного управления сессиями
  • Контроллер: валидация пользователя, роли, токена CSRF
  • Модель: валидация роли
  • Совет: рассмотрите использование управляющего запросами

Реализации CodeIgniter

  • Библиотека сессий
  • Библиотека безопасности обеспечивает валидацию CSRF
  • Легко добавить стороннюю аутентификацию

A3 Межсайтовый скриптинг (XSS)

Недостаточная валидация входных данных, когда один пользователь может добавить контент на веб-сайт, который может быть вредоносным при просмотре другими пользователями веб-сайта.

Рекомендации OWASP

  • Представление: кодирование вывода всех пользовательских данных в соответствии с контекстом вывода; установка ограничений на входные данные
  • Контроллер: положительная валидация входных данных
  • Советы: обрабатывать только надежные данные; не хранить данные, закодированные в HTML, в базе данных

Реализации CodeIgniter

  • Функция esc
  • Библиотека валидации форм

A4 Небезопасная прямая ссылка на объект

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

Рекомендации OWASP

  • Представление: не раскрывать внутренние данные; использовать случайные карты ссылок
  • Контроллер: получать данные из надежных источников или случайных карт ссылок
  • Модель: проверять роли пользователей перед обновлением данных

Реализации CodeIgniter

  • Библиотека валидации форм
  • Легко добавить стороннюю аутентификацию

A5 Ненадлежащая конфигурация безопасности

Неправильная конфигурация архитектуры приложения может привести к ошибкам, которые могут поставить под угрозу безопасность всей архитектуры.

Рекомендации OWASP

  • Представление: повышение уровня защиты веб- и прикладных серверов; использование HTTP Strict Transport Security
  • Контроллер: повышение уровня защиты веб- и прикладных серверов; защита вашей XML-стека
  • Модель: повышение уровня защиты серверов базы данных

Реализации CodeIgniter

  • Проверки на правильность работы во время загрузки

A6 Раскрытие конфиденциальных данных

Конфиденциальные данные должны быть защищены при передаче по сети. К таким данным относятся учетные данные пользователя и данные кредитных карт. Как правило, если данные должны быть защищены при хранении, они должны быть защищены и при передаче.

Рекомендации OWASP

  • Представление: использовать TLS1.2; использовать сильные шифры и хэши; не отправлять ключи или хэши в браузер
  • Контроллер: использовать сильные шифры и хэши
  • Модель: требовать надечной защищенной связи с серверами

Реализации CodeIgniter

  • Хранение ключей сессии зашифрованным способом

A7 Отсутствие контроля доступа на уровне функций

Конфиденциальные данные должны быть защищены при передаче по сети. К таким данным относятся учетные данные пользователя и данные кредитных карт. Как правило, если данные должны быть защищены при хранении, они должны быть защищены и при передаче.

Рекомендации OWASP

  • Представление: обеспечение того, что данные, не связанные с веб-приложением, находятся вне корневого каталога веб-приложения; валидация пользователей и ролей; отправка токенов CSRF
  • Контроллер: валидация пользователей и ролей; валидация токенов CSRF
  • Модель: валидация ролей

Реализации CodeIgniter

  • Публичная папка, с приложением и системой вне её
  • Библиотека безопасности обеспечивает валидацию CSRF

A8 Межсайтовая подделка запроса (CSRF)

CSRF — это атака, которая заставляет конечного пользователя выполнять нежелательные действия в веб-приложении, в котором он/она в настоящее время аутентифицирован.

Рекомендации OWASP

  • Представление: валидация пользователей и ролей; отправка токенов CSRF
  • Контроллер: валидация пользователей и ролей; валидация токенов CSRF
  • Модель: валидация ролей

Реализации CodeIgniter

  • Библиотека безопасности обеспечивает валидацию CSRF

A9 Использование компонентов с известными уязвимостями

Многие приложения имеют известные уязвимости и известные стратегии атак, которые можно использовать для получения удаленного управления или для использования данных.

Рекомендации OWASP

  • Не использовать такие компоненты

Реализации CodeIgniter

  • Третьих сторонние библиотеки, используемые в приложении, должны быть проверены

A10 Непроверенные перенаправления и переадресации

Неправильная бизнес-логика или внедренный выполнимый код могут перенаправить пользователя ненадлежащим образом.

Рекомендации OWASP

  • Представление: не использовать перенаправление URL; использовать случайные косвенные ссылки
  • Контроллер: не использовать перенаправление URL; использовать случайные косвенные ссылки
  • Модель: валидация ролей

Реализации CodeIgniter

  • Библиотека HTTP предоставляет …
  • Библиотека сессий предоставляет flashdata

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/concepts/security.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API