【问题标题】:GWAN: upload file bad requestGWAN:上传文件错误请求
【发布时间】:2013-02-25 10:35:39
【问题描述】:

我尝试做一个简单的上传表单。

我正在使用 jQuery 上传 (https://github.com/blueimp/jQuery-File-Upload/archive/master.zip)

使用简单的表单 (http://pastebin.com/wCUB2EkR) (data-url="server/php/?index.php")

我将 index.html 和 .js 放入我的“www”目录,并将 server/php/[index.php,UploadHandler.php] 放入 csp 文件夹。我添加“退出(200);”到“server/php/index.php”的末尾没有空响应

我将“entity_size”更改为没有 413 错误(请求实体太大)

当我尝试上传文件时,我遇到了几个问题:

在 G-WAN 控制台我有这个输出:

sh: 2: Content-Disposition:: not found sh: 3: Content-Type:: not found : not found

在 access.log 我有这个"[Mon Feb 25 10:29:53 2013 GMT] xxx "POST /server/php/?index.php" 127 828 "http://yy:8080/index.html"

我使用的是最新版本 (4.2.19)

[更新] 安全问题?

我只是注意到一个可怕的行为(与我的 GWAN 输出结果的链接...)

我使用了一个简单的 Perl 脚本而不是“server/php/?index.php”,它获取 STDIN 并打印到文件 (http://pastebin.com/SnXkjFya)

为了测试,我尝试使用示例命令上传 .sh 脚本,并在 GWAN 控制台中注意到服务器实际上尝试执行我的 .sh 文件中的所有命令...

我尝试使用另一个包含“touch testgwan”的文件(名为 test.txt),在使用 POST 的表单上传中上传。

文件“testgwan”是在 GWAN 目录的根目录下创建的...

我肯定做错了什么,但 GWAN 不应该执行带有“post”的命令...


更新:

由于我们无法重复此问题,Geoffrey 将他在以下平台上的测试通过电子邮件发送给我们(他使用的是 AMD Phenom(tm) II X4 955 处理器和未命名的虚拟机管理程序):

Ubuntu 12.04 32bits, G-WAN 4.2.19: problem
Ubuntu 12.04 32bits, G-WAN 4.2.27: OK

Ubuntu 10.04 32Bits, G-WAN 4.2.19: OK
Ubuntu 10.04 64Bits, G-WAN 4.2.19: OK

Ubuntu 10.04 32Bits, G-WAN 4.2.27: OK
Ubuntu 10.04 64Bits, G-WAN 4.2.27: OK

所以,对于 Geoffrey 来说,最新版本的 G-WAN 解决了​​他的问题,而之前版本的 G-WAN 仅在 Ubuntu 12.04 32bits 上出现了这个问题。

【问题讨论】:

  • 尽管有您的版本,您的代码仍然无法运行:"jQuery 文件上传插件测试:测试在 386 毫秒内完成。140 次测试中有 0 次通过,140 次失败。" 尝试让它运行,然后人们就有机会告诉你发生了什么......
  • 仅供参考,您提供的 Perl 和 Python 脚本无法在我的笔记本电脑上运行。如果可能,尽量简化您的测试。

标签: jquery file-upload g-wan


【解决方案1】:

如果您查看 G-WAN 提供的entity.c 示例(我们知道其源代码),那么您会发现 G-WAN 不可能“执行” em> 一个 POST 实体。

当明确授权这样做时,G-WAN 会将 POST 实体上传到您定义的限制 - 这是它唯一做的事情。

现在,由于您没有提供您的 PHPPython 脚本的源代码(这两个脚本都被 G-WAN 盲目执行),任何人都没有机会告诉你你做错了什么。

鉴于您的英语水平,您可能会从与您一样会说法语的 G-WAN 支持团队联系中获益。

【讨论】:

    【解决方案2】:

    由于 G-WAN 不是开源的(我理解原因并同意你的观点),我无法告诉你为什么 G-WAN 会那样做。

    我正在提供源代码,甚至是“PHP”文件。

    这些文件在“master.zip”中的jQuery上传文件中,我的第一个链接。

    忘记 php、perl 或 python 内容脚本。我对“hello world”perl 脚本有完全相同的行为。 (打印“helloworld”;)

    GWAN 有一个奇怪的行为,我猜是安全问题(因为 GWAN 执行输入文件中的所有命令)。

    我的表单将输入文件发送到“helloworld”perl 脚本,但 GWAN 执行文件内的所有命令(如 GWAN 执行“sh test.txt”)。

    我的问题可能会让其他尝试 GWAN 的人感兴趣,所以,即使我的英语不完美,我也会继续在这里回答。

    ps:不要贬低潜在客户。你的名声不是很好。在法语中,我们会说“Donner le bâton pour se faire battre”。

    【讨论】:

    • 感谢您现在提供代码,但是在运行它时,我收到致命错误:“jQuery 文件上传插件测试:测试在 386 毫秒内完成。140 个测试通过,140 个测试失败”乙>。程序停在那里。关于如何进行测试有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2014-05-26
    • 1970-01-01
    • 2022-08-03
    • 2017-02-11
    • 2019-12-02
    • 1970-01-01
    相关资源
    最近更新 更多