从套接字输出文本的安全方法。

Safe way to output text from a socket.

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