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

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

Это для регистрации моего веб-сайта, и я не знаю, какой пользователь регистрируется, и я не могу им доверять. И возможно, это будет опасно. Я хочу дезинфицировать весь ввод перед тем, как вставить его в базу данных. Я не знаю класса input, достаточного для его дезинфекции?
Подскажите пожалуйста функции очистки codeigniter!

Я прочитал класс безопасности в документе codeigniter, но хочу быть уверенным.

5
soheil yo 29 Окт 2015 в 19:05

2 ответа

Лучший ответ

Согласно Docs, класс input выполняет следующие действия:

  • Фильтрует ключи массива GET / POST / COOKIE, разрешая только буквенно-цифровые (и некоторые другие) символы.
  • Обеспечивает фильтрацию XSS (Cross-site Scripting Hacks). Это можно включить глобально или по запросу.
  • и некоторая другая обработка, но для безопасности этого достаточно.

Итак, это решает проблему SQL-инъекций и XSS. Для большинства случаев этого достаточно.

Чтобы включить защиту XSS, используйте:

$val = $this->input->post('some_data', TRUE); // last param enables XSS protection.

Кроме того, вы можете изучить защиту CSRF. Но это немного сложно включить, если вы выполняете вызовы ajax.

7
Alex Tartan 21 Апр 2020 в 16:20

Прежде чем принимать какие-либо данные в ваше приложение, будь то данные POST из отправки формы или данные URI, вы должны выполнить следующие действия:

  1. Отфильтруйте данные.
  2. Проверьте данные, чтобы убедиться, что они соответствуют правильному типу, длине, размеру и т. Д. (Иногда этот шаг может заменить первый шаг)
  3. Экранируйте данные перед их отправкой в ​​базу данных. CodeIgniter предоставляет следующие функции для помощи в этом процессе:

Фильтрация XSS

Этот фильтр ищет часто используемые методы внедрения вредоносного кода JavaScript в ваши данные.

Чтобы отфильтровать данные через фильтр XSS, используйте метод xss_clean(): Подробнее

Подтвердите данные

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

$this->form_validation->set_rules('username', 'Username','trim|required|min_length[5]|max_length[12]');

Обрезка полей, проверка длины, где это необходимо, и обеспечение совпадения обоих полей пароля. Подробнее

Удалить все данные перед вставкой базы данных

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

Обратитесь к классу построителя запросов для получения дополнительной информации https://www.codeigniter.com/userguide3/database /query_builder.html

Дополнительная информация

Codeigniter не делает ваше приложение безопасным. См. этот https: //security.stackexchange.com/questions/97845/how-secure-is-codeigniter-3-x

На самом деле все зависит от разработчика. Frameworks предоставит только структуру для создания ваших приложений. Вы будете в большей безопасности, если напишете core php.

Дополнительные ссылки:

Как вы используете bcrypt для хеширования паролей в PHP?

Достаточно ли подготовленных операторов PDO для предотвращения SQL-инъекции?

2
Community 23 Май 2017 в 12:09