GWAN:上传文件错误请求

时间:2013-02-25 10:35:40

标签: jquery file-upload g-wan

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

我正在使用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错误(Request Entity Too Large)

当我尝试上传文件时,我有几个问题:

在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输出的结果相关联......)

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

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

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

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

我肯定做错了,但GWAN不应该用“帖子”执行命令......


更新:

由于我们无法复制此问题,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 32位上遇到了这个问题。

2 个答案:

答案 0 :(得分:0)

如果您查看G-WAN提供的entity.c示例(我们知道的源代码),那么您将看到G-WAN无法“执行” 一个POST实体。

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

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

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

答案 1 :(得分:0)

由于G-WAN不是开源的(我理解为什么并同意你的观点),我不能告诉你为什么G-WAN的行为是这样的。

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

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

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

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

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

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

ps:不要贬低潜在客户。你的声誉不是那么好。在法语中我们会说“Donnerlebâtonpourse faire battre”。