Прежде всего я должен напомнить вам, что я прочитал эта почта и несколько других постов о моем вопросе, но большинство из них почти старые и около 3 лет назад.
Сейчас я использую CodeIgniter 3 и хочу знать, какой фильтр очистки моих данных является лучшим, который я извлекаю у пользователей перед тем, как вставить в базу данных.
Это для моего веб-сайта, и я не знаю, какой пользователь регистрируется, и я не могу им доверять. И возможно, что это будет опасно. Я хочу очистить весь ввод перед тем, как вставить его в базу данных, я не знаю, input
Достаточно класса для санации?
Скажите, пожалуйста, функции дезинфекции codeigniter!
Я прочитал класс безопасности в документе codeigniter, но я хочу быть уверен.
Согласно Документы, input
класс, делает следующее:
Таким образом, это решает проблему внедрения SQL и XSS. Для большинства случаев этого достаточно.
Включить XSS
защита, использование:
$val = $this->input->post('some_data', TRUE); // last param enables XSS protection.
Кроме того, вы можете посмотреть в CSRF
защита. Но это немного сложно включить, если вы делаете ajax-вызовы.
Пристрастное мнение: попробуйте начать новые проекты в реальный фреймворк, такой как Zend, Laravel и т. д., где по умолчанию у вас гораздо больше контроля над фильтрацией и безопасностью в целом.
Прежде чем принимать какие-либо данные в ваше приложение, будь то данные POST из отправки формы, URI
данные, вы должны выполнить следующие действия:
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 не делает ваше приложение secyre видеть это https://security.stackexchange.com/questions/97845/how-secure-is-codeigniter-3-x
Все действительно зависит от developer.frameworks предоставит только структуру для создания ваших приложений. Вы будете более защищены, если напишите основной php.
Дополнительные ссылки:
Как вы используете bcrypt для хэширования паролей в PHP?
Достаточно ли подготовленных операторов PDO для предотвращения внедрения SQL?