【问题标题】:using wget with php to download images generated via script remotely使用 wget 和 php 远程下载通过脚本生成的图像
【发布时间】: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

标签: php shell wget


【解决方案1】:

& 和其他字符在 shell 语法中具有特殊含义。如果你真的不能使用PHP's built-in cURL library,你至少应该escape the shell options,然后再将它们添加到命令中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2011-04-26
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    相关资源
    最近更新 更多