纯js远程下载zip,实现自动解压到js所在的当前目录?

JavaScript045

纯js远程下载zip,实现自动解压到js所在的当前目录?,第1张

这代码做起来不难,唯一的、但又能让你绝望的问题是:任何浏览器都不会允许这样的js脚本代码运行的,这属于最严重的安全隐患问题,试想想,世界上的任何一个人,只要打开某个网页,自己的电脑上就会自动被下载一个zip文件并自动解压,然后里面的说不定是什么的东西就为所欲为了,哇,世界末日的感觉啊……

对了,其实这波操作就是早期网络木马所采用的,现在各大浏览器早就已经把这漏洞补上了。

其实php对gzip解压很简单,用内置的gzdecode函数就可以了,不过很可惜我配置了半天也无法支持gzdecode函数,所以只好变通一下: 复制代码 代码如下: if (!function_exists('gzdecode')) { function gzdecode ($data) { $flags = ord(substr($data, 3, 1)) $headerlen = 10 $extralen = 0 $filenamelen = 0 if ($flags &4) { $extralen = unpack('v' ,substr($data, 10, 2)) $extralen = $extralen[1] $headerlen += 2 + $extralen } if ($flags &8) // Filename $headerlen = strpos($data, chr(0), $headerlen) + 1 if ($flags &16) // Comment $headerlen = strpos($data, chr(0), $headerlen) + 1 if ($flags &2) // CRC at end of file $headerlen += 2 $unpacked = @gzinflate(substr($data, $headerlen)) if ($unpacked === FALSE) $unpacked = $data return $unpacked } } 调用方法很简单: 复制代码 代码如下: $f=@file_get_contents("") echo gzdecode($f)