所以我使用 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);