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