это самая запутанная часть, с которой я столкнулся сегодня, я использую codeigniter, но его фильтр xss, кажется, не работает должным образом, как мы ожидали, поэтому мы попытались использовать htmlentities при сохранении данных в базу данных, но я где-то читал, мы никогда не следует изменять / редактировать введенные пользователем данные в базу данных, мы всегда должны делать это при выводе данных в браузере, поэтому здесь я полностью сбит с толку тем, что было бы самым безопасным и лучшим способом для ввода данных пользователем, сохранения в базе данных и вывода этих данных используя php
Что вы ожидали от фильтрации CI XSS, что, по вашему мнению, она не работает должным образом?
Чтобы ответить на ваши вопросы, выполните следующие действия:
Сначала проверьте данные, введенные пользователем (и прежде чем что-то делать с ним) вместо того, чтобы фильтровать и исправлять это, сделайте это с помощью CodeIgniter Form Validation Class
Руководство Ссылка: https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html
Для тебя запросы к базе данных использовать CodeIgniter Active Record Class
все данные экранируются автоматически
например $this->db->insert('mytable', $data);
Руководство Ссылка: https://ellislab.com/codeigniter/user-guide/database/active_record.html
Отобразить вводимые пользователем данные из базы данных или где-либо еще использовать 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
Это зависит от вашего намерения. Когда кто-то, не зная о вашем проекте, говорит вам, что вы никогда не должны изменять ввод пользователя, тогда он или она — bullsh1tt1ng. Вы должны задать себе правильные вопросы:
Но самое главное, ваш вопрос должен быть:
Существует ли какая-либо действительная потенциальная причина, которая могла бы подтвердить попытку пользователя ввести сценарии?