1
800126 May 15, 2015
你加一句“PHP才是最好的语言”,立马就有人回复你了。
|
2
ichou May 15, 2015
代码贴到 gist 上再发上来会比较好
|
3
RIcter May 15, 2015
会有任意文件读取吧?
|
4
p1n3 May 15, 2015
xx.php?url=file:///etc/passwd
|
5
extreme May 15, 2015
用正则表达式对$_GET['url']以及$filename匹配下比较好,例如不允许有'../'之类的。
例如:preg_match('/^[a-zA-Z0-9\-]+\.(jpg|png|gif)$/', $_GET['url']) 就只允许文件名有字母,数字和'-',且扩展名仅能为jpg或png或gif。 对这个php文件设置openbasedir,甚至是chroot,更安全。 |
6
phithon May 15, 2015
代码不加高亮我就不仔细看了,感觉会出任意文件读取、文件删除漏洞。4楼真相。
建议: 参数是url的话,正则判断 |^https?://.*\.(jpg|png|gif)$|is是否非法。 本地文件名的话,用$name = basename($name);处理一遍,再判断一遍后缀是否是图片就差不多了。 |
7
denghongcai May 15, 2015
4楼的并没有任意文件读取,basename也不是个这种情况都照顾不到的函数的
|
8
ryd994 May 17, 2015 via Android
chroot 卍解
|