提交 38867224 编写于 作者: D Devil

文件下载安全优化

上级 507d511c
...@@ -56,13 +56,12 @@ class QrCode extends Common ...@@ -56,13 +56,12 @@ class QrCode extends Common
public function Download() public function Download()
{ {
$params = input(); $params = input();
if(empty($params['url'])) $ret = (new \base\Qrcode())->Download($params);
if(!empty($ret) && isset($ret['code']) && $ret['code'] != 0)
{ {
$this->assign('msg', 'url参数为空'); $this->assign('msg', $ret['msg']);
return $this->fetch('public/tips_error'); return $this->fetch('public/tips_error');
} }
(new \base\Qrcode())->Download($params);
} }
} }
?> ?>
\ No newline at end of file
...@@ -180,7 +180,17 @@ class Qrcode ...@@ -180,7 +180,17 @@ class Qrcode
public function Download($params = []) public function Download($params = [])
{ {
// 图片地址 // 图片地址
$url = base64_decode(urldecode($params['url'])); $url = empty($params['url']) ? '' : base64_decode(urldecode($params['url']));
if(empty($url))
{
return DataReturn('url地址有误', -1);
}
// 域名验证、仅支持下载当前域名下的文件
if(GetUrlHost(__MY_HOST__) != GetUrlHost($url))
{
return DataReturn('url地址非法', -1);
}
// 随机文件名 // 随机文件名
$filename = empty($params['filename']) ? date('YmdHis').GetNumberCode().'.png' : $params['filename'].'.png'; $filename = empty($params['filename']) ? date('YmdHis').GetNumberCode().'.png' : $params['filename'].'.png';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册