1

我正在编写一个下载计数器,我想知道在服务器完全发送缓冲区(这里是使用 readfile 发送的文件)并被客户端接收后是否可以执行代码。请注意,我不能使用任何客户端语言,因为我直接传输文件(不使用 XHR 或/和 FileSystem javascript API)。

它以任何方式可行吗?

谢谢!

4

2 回答 2

1

可以在服务器完全发送缓冲区(这里是使用 readfile 发送的文件)后执行代码

是的....

<?php
readfile($_GET['i_am_so_vuln']);
print "whoops!";

……有那么难吗?

并被客户收到

不——因为你不这样做。它可以在中间网络上的多个点进行缓冲。(甚至缓存)。

于 2012-08-23T14:33:00.833 回答
0

如果它是用户正在下载的文件,我认为你什么都做不了echo。我刚测试过。提示该文件,它完成并且没有任何内容打印到浏览器。请务必注意,这可能取决于浏览器。

但是,如果您尝试将记录插入/更新到数据库或保存日志文件,它会起作用。

所以,我想说,你可以,你不能。

于 2012-08-23T14:12:47.327 回答