codeigniter — самый безопасный способ получить пользовательский ввод, поместить его в базу данных и вывести с помощью переполнения стека

это самая запутанная часть, с которой я столкнулся сегодня, я использую codeigniter, но его фильтр xss, кажется, не работает должным образом, как мы ожидали, поэтому мы попытались использовать htmlentities при сохранении данных в базу данных, но я где-то читал, мы никогда не следует изменять / редактировать введенные пользователем данные в базу данных, мы всегда должны делать это при выводе данных в браузере, поэтому здесь я полностью сбит с толку тем, что было бы самым безопасным и лучшим способом для ввода данных пользователем, сохранения в базе данных и вывода этих данных используя php

0

Решение

Что вы ожидали от фильтрации CI XSS, что, по вашему мнению, она не работает должным образом?

Чтобы ответить на ваши вопросы, выполните следующие действия:

  1. Сначала проверьте данные, введенные пользователем (и прежде чем что-то делать с ним) вместо того, чтобы фильтровать и исправлять это, сделайте это с помощью CodeIgniter Form Validation Class

    Руководство Ссылка: https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html

  2. Для тебя запросы к базе данных использовать CodeIgniter Active Record Classвсе данные экранируются автоматически

    например $this->db->insert('mytable', $data);

    Руководство Ссылка: https://ellislab.com/codeigniter/user-guide/database/active_record.html

  3. Отобразить вводимые пользователем данные из базы данных или где-либо еще использовать CodeIgniter html_escape() функция

Тебе хорошо идти …

P.S. Links were for version 2.2, if you're using version 3, routine is the same but simply find the guide on codeigniter.com

1

Другие решения

Это зависит от вашего намерения. Когда кто-то, не зная о вашем проекте, говорит вам, что вы никогда не должны изменять ввод пользователя, тогда он или она — bullsh1tt1ng. Вы должны задать себе правильные вопросы:

  • я хочу защитить от xss при сохранении данных или при загрузке данных?
  • как на UX будут влиять изменения пользовательского ввода? Есть ли проблемы? Есть ли автоматическое исправление?
  • если я защищаю от xss при показе, есть ли вероятность забыть о каком-либо месте? Если так, есть ли способ нейтрализовать эту потенциальную утечку безопасности?

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

0

По вопросам рекламы [email protected]