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

Мы серьезно относимся к безопасности. 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

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

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

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

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

Положения CodeIgniter

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

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

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

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

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

Положения CodeIgniter

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

A5 Неверная конфигурация безопасности

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

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

  • Презентация: усиление защиты веб-серверов и серверов приложений; использовать строгую транспортную безопасность HTTP
  • Контроллер: усиление защиты веб-серверов и серверов приложений; защитить свой стек XML
  • Модель: усиление серверов баз данных

Положения CodeIgniter

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

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

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

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

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

Положения CodeIgniter

  • Ключи сеанса хранятся в зашифрованном виде

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

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

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

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

Положения CodeIgniter

  • Общая папка с приложением и системой снаружи
  • Библиотека HTTP обеспечивает проверку CSRF

Подделка межсайтовых запросов A8 (CSRF)

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

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

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

Положения CodeIgniter

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

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

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

  • Не используйте ничего из этого

Положения CodeIgniter

  • Встроенные сторонние библиотеки должны быть проверены

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

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

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

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

Положения CodeIgniter

Добавить комментарий