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