簡単なアップロードフォームを作成しようとしています。
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 ビットのみでこの問題が発生していました。