ファイルを代替サーバーC#.net 2.0に安全にアップロードする
-
03-07-2019 - |
質問
サーバーAでホストされている.net 2.0のC#Webアプリケーションがあります。このWebアプリケーションにより、ユーザーは<input id="File1" name="filMyFile" type="file" runat="server" />
を使用してファイルをサーバーAにアップロードできます。これはすべて正常に機能します。
現在、Aに情報を保存せずにサーバーBに直接アップロードできるように、Aが提供するページを許可するようにWebアプリケーションを変更するように求められています。
セキュリティ上の理由から、これを行うよう求められています。おそらくiframeを使用し、サーバーBがSSLでリクエストをラップするアップロード部分のみをホストすることを考えていました。これを行うことのセキュリティへの影響は完全にはわかりませんが、ログイン制御のために、ログイン部分を含むiframeのみをSSLで使用し、サイトの残りの部分は安全ではないWebサイトをいくつか見ました。
これは大丈夫ですか?誰かがより良い方法をお勧めできますか?おそらく基本的なアーキテクチャを提案します。
解決
iframeアプローチを使用しました。アップロードフォームのiframeコードはサーバーBでホストされています。必要に応じて、サーバーBでページ全体をホストすることもできます。
他のヒント
サーバーBのSSLで保護されたページにform
アクションを設定しないのはなぜですか?
<form method="POST" action="https://serverb/uploadmanager.ashx" ...>
ファイルをSQL dbに直接書き込むこともできます。ファイルがサーバーのハードドライブ上に存在することは決してないため、セキュリティの観点からこのアプローチを好みます。その後、2つのサーバー間で共有できます。
逆に、最初にディスクに書き込まれていないファイルでAVスキャンを行うのはより困難です。