Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

# CodeIgniter User Guide Version 2.1.3

Search User Guide

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

Эта страница описывает некоторые «лучшие практики» безопасности веба, и детали внутренних опций безопасности CodeIgniter.

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

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

- Алфавитно-цифровые символы
- Тильду: ~
- Точку: .
- Двоеточие: :
- Подчеркивание: _
- Дефис: -

## Register_globals

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

## error_reporting

В окружении эксплуатации (production environment), как правило, жетательно отключать вывод ошибок PHP путем установки флага error_reporting в 0. Это отключит вывод родных сообщений об ошибках PHP, которые могут содержать потенциально конфиденциальную информацию.

Установка константы CodeIgniter-а `ENVIRONMENT`, которая находится в index.php в значение '`production`' отключит вывод этих ошибок. В режиме разработки рекомендуется иметь значение '`development`'. Больше информации по различиям между окружениями вы можете найти на странице Управление окружениями.

## magic_quotes_runtime

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

# Лучшие практики

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

1. Всегда фильтровать данные, как будто если бы они были плохими;
2. Валидировать данные, чтобы убедиться в их соответствии корректому типу, размеру, длине и так далее (иногда этот шаг заменяет предыдущий);
3. Экранировать данные перед помещением их в БД.

CodeIgniter предоставляет следующие функции для этого процесса:

- ## Фильтрация XSS

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

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

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

- ## Экранирование всех данных перед вставкой в базу данных

  Никогда не вставляйте информацию в БД без ее предварительного экранирования. Пожалуйста смотрите обсуждение на странице запросы для получения дополнительной информации.

### Поделиться

Переведено в компании Аринт.

# Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

## Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter