使用curl / fopen请求从网站到我的网站的zip文件。当请求到来时,我的站点中的特定php方法代码获取请求URL中的所有查询字符串变量值,然后进行各种检查以验证请求的有效性(有一些我不想要的检查出于安全原因写,然后下面的代码最后回复zip文件 -
header("Expires: 0");
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="file name here"');
header('Content-Length: '.filesize("/home/ttcc/content.zip"));
header("Cache-Control: maxage=1");
header("Pragma: public");
header("Content-Transfer-Encoding: binary");
ob_clean();
flush();
if (!readfile("/home/ttcc/content.zip")) echo "some messages";
exit();
该代码有效,但这是响应zip文件的正确方法吗?它有任何缺陷或安全漏洞吗?
答案 0 :(得分:0)
如果在将文件作为响应发送之前不需要任何其他计算,则最好使用 Web服务器来实现此目的。 Nginx将是提供静态文件的不错选择。
因此请求不应传递给PHP,并由Web服务器本身处理,如图像和其他静态文件。
如果您需要针对同一请求检查访问权限或使用不同文件的响应,则可以使用您的代码并在其之前进行所有计算。通过PHP实现它是非常简单方便的解决方案。