Я работаю над общедоступным интерфейсом, который использует базу данных, которая фактически не заслуживает доверия из-за того, что к ней обращаются несколько приложений.
Я хотел бы получить чистый способ кодирования всех своих выходных данных в UTF-8htmlentities для предотвращения XSS.
В Codeigniter (CI) ничего не встроено. Фильтр, предназначенный для ввода, фактически не фильтрует все атаки XSS.
Я бы предпочел полное исправлениено не думайте, что он есть.
Что я действительно хочу сказать в этом обсуждении, каков наилучший способ отфильтровать мои результаты?И является ли следующее лучшее / самое краткое решение?(функция кодирования является оберткой для htmlentities с utf8 и ent_compat)
<?php
echo form_input(“start_date[”.encode($id).”]”, encode($action->start_date,true), class=“input input-date dateISO required” readonly=readonly title=“must set a date.”’);
?>
Как вы можете видеть, код начинает выглядеть довольно глупо, разбрызгивая эту функцию кодирования повсюду.Кодирование на уровне контроллера просто не является решением, поскольку CI не использует строгие шаблоны.Кодирование на уровне модели оставляет открытыми другие возможные пути.Кодирование во время вывода кажется самым безопасным / ловким во всех случаях способом, я просто хочу, чтобы кто-то подтвердил, что я не пропускаю что-то очевидное и приятнее смотреть / поддерживать