Поэтому я использую tcp-сокет для обслуживания данных на лету, он чрезвычайно отзывчив и позволяет просматривать файлы машины без какого-либо доступа к реальной машине.
Например, текст, который мы передаем через сокет:
This book is a treatise on the theory of ethics, very popular during
the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit
amet..", comes from a line in section 1.10.32.;?> <?php die("malicious"); ?>
Вопрос состоит в том, чтобы повторить вывод, лучший способ выполнить это, эти файлы могут реально содержать что-нибудь, но они будут считаны в поток и затем напечатаны на странице. (надеюсь, в виде простого текста)
В настоящее время я использую strip_tags на выходе.
echo strip_tags($output);
Является ли это достаточно безопасным способом предотвращения всего, что может находиться в этих файлах, они не выполняются, просто читаются, поэтому санация текста — единственное реальное значение здесь.
Спасибо.
Вы могли бы отправить
header('Content-type: text/plain');
в начале сценария. В этом случае браузер не должен пытаться визуализировать любой вывод скрипта как HTML.
Или, если этот вывод встроен в страницу, содержащую HTML, вы можете преобразовать его в сущности, чтобы он не отображался как HTML.
echo htmlentities($output);
Других решений пока нет …