0

簡単なアップロードフォームを作成しようとしています。

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 フォルダーに入れました。「exit(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」の代わりに、STDIN を取得してファイルに出力する単純な Perl スクリプトを使用します ( http://pastebin.com/SnXkjFya )

テストするために、サンプル コマンドを使用して .sh スクリプトをアップロードしようとしましたが、GWAN コンソールで、サーバーが実際に .sh ファイル内のすべてのコマンドを実行しようとしていることに気付きました...

「touch testgwan」を含む別のファイル (test.txt という名前) を試し、POST を使用してフォーム アップロード内にアップロードします。

GWANディレクトリのルートに「testgwan」というファイルが作成されました...

確かに、私は何か間違ったことをしていますが、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 ビットのみでこの問題が発生していました。

4

2 に答える 2

0

G-WANはオープンソースではないので(そして私はその理由を理解し、あなたの見解に同意します)、G-WANがそのように機能している理由をあなたに伝えることはできません。

「PHP」ファイルも含めて、ソースコードを提供しています。

これらのファイルは、私の最初のリンクであるjQueryアップロードファイルの「master.zip」にあります。

php、perl、またはpythonコンテンツスクリプトを忘れてください。「helloworld」perlスクリプトでもまったく同じ動作をします。(「helloworld」を印刷します;)

GWANには奇妙な動作があり、セキュリティの問題があると思います(GWANが入力ファイルのすべてのコマンドを実行するため)。

私のフォームは入力ファイルを「helloworld」perlスクリプトに送信しますが、GWANはファイル内のすべてのコマンドを実行します(GWANが「shtest.txt」を実行するように)。

私の問題はGWANを試している他の人の興味を引くかもしれないので、私の英語が完璧でなくても、ここで答え続けます。

ps:潜在的な顧客を軽視しないでください。あなたの評判はそれほど良くありません。フランス語で「Donnerlebâtonpoursefairebattre」と言います。

于 2013-02-26T20:21:28.667 に答える
0

G-WAN で提供されているentity.c例 (ソース コードがわかっているもの) を見ると、G-WAN がPOST エンティティを「実行」する可能性がないことがわかります。

そうすることが明示的に許可されている場合、G-WAN は、定義した制限まで POST エンティティをアップロードします。それが唯一のことです。

現在、あなたはスクリプトとスクリプトのソース コードを提供していないため(どちらもG-WAN によって盲目的に実行されています)、あなたが間違っていることを誰かがあなたに伝える機会はほとんどありません。PHPPython

あなたの英語のレベルを考えると、あなたと同じようにフランス語を話す G-WAN サポート チームに連絡することで、おそらく利益が得られるでしょう。

于 2013-02-26T15:51:02.107 に答える