ベストアンサー CGIでアップロード 2002/06/24 09:12 今日は。 CGI(PERL)やってます。 サーバ上に設定されたMIMEタイプをクライアントからアップロードすることを考えています。 このときにセキュリティ上、気をつけなければならないことは? みんなの回答 (3) 専門家の回答 質問者が選んだベストアンサー ベストアンサー nta ベストアンサー率78% (1525/1942) 2002/06/25 21:09 回答No.3 サーバのクオータ管理が正しく働くのであれば気にしなくてもいいのかもしれませんが、 >大容量のテキストファイルの類をアップロードしてきた場合、全部サーバ側に来ないと容量のチェックは無理なように見えますが。 Perl CGI側でできそうなことはsysread関数で長さを制限しながら読み込み、制限を超えるとdieでスクリプトを終了させてしまうという手が考えられます。また、スクリプト起動時にディスク容量を確認(サーバによって方法は異なると思います)する動作もできると思います。 セキュリティ面ではありませんが、日本語ファイル名のファイルが転送されてきたとき、Unix上でEUCコードの日本語ファイル名に変換できないことがあります。半角かな禁止や文字化けへの対処は大変面倒なので、アルファベット+数字だけのファイル名でのアップロードに制限するといいのですが、なかなか守ってくれません。このサイトのように事前に文字をチェックするシステムを導入ればいいのではないかと思っているのですが、いまだに実現できていません。 質問者 お礼 2002/06/26 15:01 レンタルサーバ上:irixにて sysread(STDIN, $IN, 制限値) を実行すると、制限値を超えるとだめになるようです。 read(STDIN, $IN, 丸ごとサイズ) を実行すると、一応うまくいくようです。 質問者 補足 2002/06/27 15:33 お礼の文章を訂正します。 制限値を越えるとだめではなくて サーバのプロセス監視によって、このプロセスが止められたようです。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (2) nta ベストアンサー率78% (1525/1942) 2002/06/25 05:16 回答No.2 要はアップロード時にうまくサイズチェックできるようにするということではあるのですが、ブラウザのアップロード機能でいきなり送信させることは危ないとかんがえています。サーバ側からはパソコン上にあるファイルサイズをチェックするということもできませんし、相手がプログラムでプレーンテキストのデータを連続送信してきた場合には途中でも受信を拒否するようにcgiのプログラムを書くか、JavaScriptやCookieなどを利用して送信元の事前チェックを厳しくする必要があります。 質問者 お礼 2002/06/25 17:13 大容量のテキストファイルの類をアップロードしてきた場合、全部サーバ側に来ないと容量のチェックは無理なように見えますが。 使用しているサーバはレンタルしていて、 「 なお、CGI に関する制限としましては、 メール&ウェブではお客様が設置したCGIプログラムが消費する サーバリソースの消費量を監視しており、サーバの既定の値を超えた 場合、自動的に該当プログラムのプロセスを停止する措置を行います 」 ということだそうです。 後は、プロキシ―経由を禁止して、おかしいとみなしたプロバイダーを禁止しようかと考えています。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 nta ベストアンサー率78% (1525/1942) 2002/06/24 11:58 回答No.1 よくわからないのですが、サーバはhttpサーバだと思いますが、MIMEタイプはPOSTまたはGETメソッドでクライアント側からサーバにアップロードするときに、形式を指定する時に使うと思われますが、「サーバ上に指定されたMIMEタイプをクライアントからアップロードする」という動作はどういう状況を念頭に入れているのでしょうか。 ファイルのアップロードはあらゆるファイルタイプのデータを転送できます。サーバでのファイルの実行が禁止されていれば、サーバでのウイルスの実行などは制限されます。しかし、大量のデータを送りつけてディスクをパンクさせたり、サーバに保存させたウイルスやブラクラをダウンロードさせて他のクライアントに被害を与えることは可能です。ユーザ認証とファイルサイズ制限は最低でも必要です。サーバ上で定期的にウイルスチェッカによるスキャンも必要でしょう。 質問者 お礼 2002/06/24 13:05 回答、ありがとうございます。 ファイルのサイズ制限は、CGIでする予定です。 クライアントでのウィルスチェックをさせるつもりですが、当てにならないので、サーバ側でブロックすることにしてます。 MIMEタイプは、必要なものだけ許可(文書用ファイルが想定)の形。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターITシステム運用・管理ネットワーク 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター ITシステム運用・管理 ハードウェア・サーバーネットワークセキュリティ対策その他(ITシステム運用・管理) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
レンタルサーバ上:irixにて sysread(STDIN, $IN, 制限値) を実行すると、制限値を超えるとだめになるようです。 read(STDIN, $IN, 丸ごとサイズ) を実行すると、一応うまくいくようです。
補足
お礼の文章を訂正します。 制限値を越えるとだめではなくて サーバのプロセス監視によって、このプロセスが止められたようです。