Как указал Фрэнк, если вы хотите поддерживать высокий уровень безопасности, используйте технику белого списка. Это, конечно, имеет свою цену (может быть слишком ограничительным, трудно осуществимым).
Альтернативный путь - разработать технику черного списка. т.е. разрешить только код, который не вызвал никаких звонков. Это проще, потому что вы должны указать меньше вещей, но он не будет ловить новые эксплойты.
В Интернете доступно множество информации по обоим методам.
Использование функций безопасности CodeIgniters (фильтрация XSS и т. Д.) Не поможет вам продвинуться вперед, поскольку большинство фрагментов не будут допущены.
Что бы вы ни делали, вы должны помнить это:
Не думайте, что вредоносный код будет иметь целью просто навредить посетителям вашего сайта. Он также может быть направлен на компрометацию вашего сервера с помощью вашего анализатора / инспектора кода. Например, допустим, Алиса загружает фрагмент кода foo. Алиса намеренно создает фрагмент, чтобы ваш анализатор пометил его как вредоносный из-за эксплойта XSS. Допустим, ваш парсер также обновляет базу данных вредоносным фрагментом для дальнейшего изучения. Алиса знает это. Наряду с эксплойтом XSS Алиса внедрила в код некоторый код SQL, поэтому, когда вы вставляете фрагмент в базу данных, он будет делать всякие плохие вещи.
Если вы действительно параноик, у вас может быть изолированный сервер, единственной обязанностью которого будет проверка фрагментов кода. Таким образом, в WCS будет взломан только этот сервер с низким уровнем риска, и у вас будет (надеюсь) достаточно времени для исправления / аудита ситуации.
Надеюсь, это поможет.