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


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);