Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
纵之格
ShopXO
提交
8032d01e
ShopXO
项目概览
纵之格
/
ShopXO
通知
394
Star
16
Fork
11
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8032d01e
编写于
8月 21, 2021
作者:
D
Devil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
图片上传木马检查
上级
9e50a3ef
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
6 deletion
+19
-6
extend/base/Uploader.php
extend/base/Uploader.php
+19
-6
未找到文件。
extend/base/Uploader.php
浏览文件 @
8032d01e
...
...
@@ -50,8 +50,9 @@ class Uploader
"ERROR_DEAD_LINK"
=>
"链接不可用"
,
"ERROR_HTTP_LINK"
=>
"链接不是http链接"
,
"ERROR_HTTP_CONTENTTYPE"
=>
"链接contentType不正确"
,
"INVALID_URL"
=>
"非法 URL"
,
"INVALID_IP"
=>
"非法 IP"
,
"INVALID_URL"
=>
"非法URL"
,
"INVALID_IP"
=>
"非法IP"
,
"INVALID_FILE"
=>
"非法文件"
,
"ERROR_IMAGE_SAVE"
=>
"保存出错,图片有误"
,
"ERROR_UPLOAD_TYPE"
=>
"操作类型有误"
,
);
...
...
@@ -193,9 +194,9 @@ class Uploader
}
// 防止原名称没有带后缀
$info
=
getimagesize
(
$file
[
'tmp_name'
]);
if
(
stripos
(
$file
[
'name'
],
'.'
)
===
false
)
{
$info
=
getimagesize
(
$file
[
'tmp_name'
]);
$file
[
'name'
]
.
=
str_replace
(
'/'
,
'.'
,
$info
[
'mime'
]);
}
...
...
@@ -228,7 +229,14 @@ class Uploader
return
;
}
// 存储图片、使用GD存储图片、防止图片包含木马
// 验证一句话木马(如果是加密的无法判断)
$content
=
@
file_get_contents
(
$file
[
"tmp_name"
]);
if
(
false
==
$content
||
preg_match
(
'#<\?php#i'
,
$content
)
||
$info
[
'mime'
]
==
'text/x-php'
)
{
$this
->
stateInfo
=
$this
->
getStateInfo
(
"INVALID_FILE"
);
return
;
}
// 如未安装相应的gd库则直接存储文件
// 未开启重新绘制
$is_move
=
false
;
...
...
@@ -333,7 +341,6 @@ class Uploader
}
else
{
//移动成功
$this
->
stateInfo
=
$this
->
stateMap
[
0
];
}
}
/**
...
...
@@ -398,6 +405,13 @@ class Uploader
$this
->
fileName
=
$this
->
getFileName
();
$dirname
=
dirname
(
$this
->
filePath
);
// 验证一句话木马(如果是加密的无法判断)
if
(
preg_match
(
'#<\?php#i'
,
$img
))
{
$this
->
stateInfo
=
$this
->
getStateInfo
(
"INVALID_FILE"
);
return
;
}
//检查文件大小是否超出限制
if
(
!
$this
->
checkSize
())
{
$this
->
stateInfo
=
$this
->
getStateInfo
(
"ERROR_SIZE_EXCEED"
);
...
...
@@ -419,7 +433,6 @@ class Uploader
}
else
{
//移动成功
$this
->
stateInfo
=
$this
->
stateMap
[
0
];
}
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录