-2

ユーザー情報を取り込む Web フォームがあります。さまざまなテキスト ボックスの値を使用して、html ファイルを作成します。この html をファイル (特定の名前) に書き込み、ユーザーにこのファイルを保存するように求めます。この html は、Outlook の電子メール署名の作成に使用されます。現在、アプリケーション内にこの html があります。これはサーバーにデプロイされています。このファイルを機能させるには、すべてのユーザーに対してこのファイルへの書き込み許可を設定する必要がありました。

セキュリティ上のリスクはありますか? 複数のユーザーがこのアプリケーションにアクセスし、同時にファイルに書き込むとどうなりますか。

4

2 に答える 2

0

ファイルに「特定の名前」があると言うとき、それは常に同じ名前であるということですか? もしそうなら、はい、複数のユーザーが同時にこの機能を使用すると問題が発生します. それらは 1 つのファイルを上書きし、互いのデータをダウンロードします。これを回避するには、プロセスを実行するたびに一意のファイル名を生成する必要があります。

しかし、実際にファイルを保存する必要がありますか?

それとも、ユーザーがダウンロードするための HTML を生成することが純粋に目的であり、これを行う方法は、それをファイルに書き込んでから、そのファイルをダウンロードするように促すことですか?

ファイルを保存する必要がなく、HTML を生成してユーザーに保存を促す必要がある場合は、通常のページとして提供し、ブラウザがダウンロードできるように応答ヘッダーを設定します。これらの行に沿ったもの:

Response.AddHeader("content-disposition", "attachment;filename=my_file.html");
于 2012-12-17T20:02:06.897 に答える
0

私が理解していることから、ユーザーは Web フォームに入力して送信します。すぐに、サーバーからダウンロードするための html ファイルがポップアップ表示されます。これは、このシナリオの非常にきちんとした実装だと思います。ファイルのロックを防ぐために、リソースが適切に解放されていることを確認する必要があります。

複数のユーザーがこのアプリケーションにアクセスする場合、個別のファイルが特定の名前で作成されるため (前述のとおり)、アプリケーションが壊れることはありません。一意の名前を作成するためにどのようなロジックが使用されているかわかりません。特殊な状況 (これは名前の計算ロジックに完全に依存します) で、計算された特定のファイル名が何らかの形で既存のファイルに似たものになった場合、同じファイル名の別のバージョンを置き換えるか作成するコードを配置する必要があります。ストリーム/ファイル オブジェクトを破棄せずに、Web フォームからキャプチャしたデータを同じファイルに何度も書き込んでいると、ロックが発生する可能性があります。コードで使用した後は、必ずオブジェクトを破棄してください。

全員に書き込みアクセス権を与えるのではなく、そのファイル/フォルダーへの書き込みアクセス権を持つユーザーに、Web アプリケーションのアプリケーション プールへのアクセス権を与えるとよいでしょう。このようにして、アプリケーションは、ユーザーが権限を持つのではなく、書き込み操作を実行するための完全な権限を取得します。ユーザーがファイル/フォルダーへの書き込みアクセス権を持っている場合、誰でも簡単に覗き込んで予期しないことを行うことができます。

お役に立てれば。

于 2012-12-17T20:14:19.897 に答える