IIS)にパブリックASP.NET(またはクラシックASP)アプリケーションがあり、Webパブリッシングフォルダーツリー内にある特定のフォルダー内のファイルを書き込んだり更新したりする必要があるスクリプトがあるとします。 。
1)これを設定する適切な方法は何ですか?
私の主な関心事は、ASP/ASP.NETアプリにフォルダーへの書き込みを許可したいのですが、通常のhttpユーザーがファイルをフォルダーに入れられるようにしたくないということです。
まず、私は、ディスクにデータを書き込むよりも、ほとんどの場合、より良い解決策があると信じています。データをデータベースに書き込む場合でも、Webサービスにフィードする場合でも、ディスクへの書き込みは最後のオプションです。
いくつかの正当な理由があると言われていますが、これは一種のトリッキーであり、アプリがファイルを書き出す必要がある理由によって異なります。
コードの実行元以外の場所にデータを書き込むことは、絶対的な要件です。エンドユーザーがASPX/aspエンジンがコードを解釈/実行できるパスに書き込むことを許可することは、明らかな理由で悪いことです。
これに影響を与える他のいくつかのものは次のとおりです。
App_Dataフォルダー
ASP.NETアプリケーションで使用されるデータのセキュリティを向上させるために、App_Dataという名前の新しいサブフォルダーがASP.NETアプリケーション用に追加されました。 App_Dataフォルダーに保存されているファイルは、直接のHTTP要求に応答して返されないため、App_Dataフォルダーは、.mdf(SQL Server Express Edition)、. mdb(Microsoft Access)、XMLなど、アプリケーションと共に保存されるデータの推奨場所になりますファイル。 App_Dataフォルダーを使用してアプリケーションデータを格納する場合、アプリケーションのIDにはApp_Dataフォルダーに対する読み取りおよび書き込み権限があることに注意してください。
おそらく、見渡すことに賭けています stackoverflow.com .. ..
ベストプラクティスは、そのフォルダーをドキュメントルートの外に置き、アプリをファイルシステムから読み取ることです。それ以外の場合は、ASP [.NET]ユーザー以外はフォルダーを読み取り専用にして、アプリの内部認証で書き込み権限を制御します。
App_Dataは、デフォルトでは書き込み可能ですが読み取り可能ではありません。サーバーはこれを変更しようとする試みに抵抗するようです。したがって、完全に新しいフォルダを作成し、そのフォルダのアクセス許可を「実行不可」、「読み取り可能」、「書き込み可能」に変更することをお勧めします。