【发布时间】:2014-03-06 14:33:29
【问题描述】:
大家好。
我有这个问题,我需要下载很多图片,我有可能使用wget来实现,但是我遇到了一些问题。
首先,我尝试了 wget 本身:
system('wget -q http://www.google.com/images/logo_sm.gif -O test2.gif');
好的,它有效,我可以做到...... 因此,我更改了参数,将真实 URL 和子目录放在了保存位置:
system('wget -q -nH '.$row['foto'].' -O ./img/'.$row['modello'].'.jpg');
被解析的地方:
wget -q -nH http://server.com/main.php?action=exec&task=show_image&task_arg=23456&m=not&ft=product_full_image_1&auth=d84a122342332ff2d1dssssff06d0199 -O ./img/0561142.jpg
这次我得到了一个奇怪的结果,在脚本的同一目录中创建了一个名为 main.php?action=exec### 的数千个 11 字节文件(请注意,### 是一个 3 位数字)。
我知道有问题...可能是 url 参数?也许是子目录?我在搞什么鬼?是system神选吗?或者exec 更好?还是什么?
提前致谢。
【问题讨论】:
-
哇,请不要只传递这样的数据库值,如果有人发现 sql 注入,他们也可以拥有 shell 访问权限!
-
它实际上正在测试中,当然我永远不会将它投入生产:D
-
即使是为了测试,也要使用 php curl 库
-
所以最好使用 crul 而不是 wget?你是在说这个吗?
-
很可能正是我之前所说的,它没有在两行周围转义
escapeshellarg。