我正在编写一个下载计数器,我想知道在缓冲区(这里是一个用readfile发送的文件)已经由服务器完全发送并由客户端接收之后是否可以执行代码。请注意我不能使用任何客户端语言,因为我直接传输文件(不使用XHR或/和FileSystem javascript API)。
以任何方式可行吗?
谢谢!
答案 0 :(得分:1)
在缓冲区(这里是一个用readfile发送的文件)已经由服务器完全发送后可以执行代码
是....
<?php
readfile($_GET['i_am_so_vuln']);
print "whoops!";
....真是太难了吗?
并由客户收到
不 - 因为你不这样做。它可以在中间网络上的多个点进行缓冲。 (甚至缓存)。
答案 1 :(得分:0)
如果是用户正在下载的文件,我认为你不能echo
。我刚刚测试过。提示文件,它完成并且没有任何内容打印到浏览器。请务必注意,这可能取决于浏览器。
但是,如果您尝试将记录插入/更新到数据库或保存日志文件,则可以正常工作。
所以,我会说,你可以而且你不能。