从套接字输出文本的安全方法。
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);
所以我正在使用 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);