Безопасность

 

Данная глава описывает основные подходы к безопасности web-приложений и некоторые подробности о функционале CodeIgniter связанном с безопасностью.

Безопасность URI

CodeIgniter достаточно строг по отношению к тому, какие символы допустимы в URI чтобы минимизировать возможность передачи подозрительных данных в приложение. Допустимыми символами являются:

  • Цифро-буквенные последовательности
  • Тильда "~"
  • Точка "."
  • Двоеточие ":"
  • Подчеркивание "_"
  • Знак минус "-"

Данные GET,POST и COOKIE

Данные GET по умолчанию запрещены в CodeIgniter, т.к. для передачи параметров используются сегменты URL (вы можете включить поддержку GET в конфигурационном файле). По умолчанию глобавльный массив GET очищается классом Input при инициализации приложения.

register_globals

При инициализации все глобальные переменные очищаются, кроме установленных в массивах $_POST и $_COOKIE. Процедура очистки практически соответствует установке опции register_globals=off.

magic_quotes_runtime

Директива magic_quotes_runtime отключается при инициализации, поэтому вам не нужно отрезать лишние слэши при чтении данных из БД.

Основные подходы к безопасности

Прежде чем обрабатывать полученные данные, будь то данные POST из формы,данные COOKIE, данные URI, XML-RPC, либо даже данные из массива SERVER, рекомендуется использовать простой подход из трех этапов:

  1. Фильтруйте как подозрительные.
  2. Проводите валидацию данных на соответствие ожидаемому типу, размеру данных и т.д.
  3. Проводите экранирование данных перед сохранением в БД.

CodeIgniter предоставляет следующую функциональность для обеспечения безопасной обработки
данных:

Фильтрация XSS

В CodeIgniter встроен фильтр Cross Site Scripting. Данный фильтр ищет наиболее распостраненные техники для вставки подозрительного JavaScript кода в данные, либо другие типы кода которые пытаются подменить куки или выполнить другие нежелательные действия.

Валидация данных

В CodeIgniter встроен класс _валидации_, который помогает проверять, фильтровать и подготавливать данные.

Экранирование данных перед вставкой в БД

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

Отправить комментарий

  • Allowed HTML tags: <em> <b> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <h2> <h3> <h4> <table> <tr> <td> <th>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

Подробнее о форматировании

CAPTCHA
Этот вопрос предназначен для того, чтобы отсеять ботов

Вход в систему

Последние комментарии