2

私は ASP.net プロジェクトに取り組んできましたが、以前は、'Web サイト プロジェクト' と 'Web アプリケーション プロジェクト' についてまったく知りませんでした。どちらも同じだと思ったので、Web サイトを選択しましたが、名前空間を使用できるようにするために別の方法をとっていればよかったのにと思います。

ともかく。ここで、すべてのページでいくつかのグローバル関数と変数を使用する必要があります。したがって、これを行う唯一の方法は、App_code ディレクトリにクラスを作成し、必要な場所でオブジェクトをインスタンス化してその関数を使用することだと考えています。これが唯一の方法ですよね?

クラスとその関数を公開することしかできず、保護することさえできないことに気付きました。パブリックなクラスを使用する際にセキュリティの抜け穴があるかどうか疑問に思っていました。誰でも色を投げることができますか?

ありがとうございました。

4

2 に答える 2

1

この特定のトピックに関するMSDN ドキュメントは、実際には非常に優れています。

App_Code フォルダーによるセキュリティ

App_Code フォルダー内のコードに関するセキュリティの問題は、基本的に Bin フォルダー内のコードに関する問題と同じです。コードは実行時にアセンブリにコンパイルされます。問題を緩和する要素は、App_Code フォルダー内のファイルのソース コードを読み取ることができることです。ただし、コードを完全に理解していない場合でも、セキュリティ リスクが生じる可能性があります。したがって、App_Code フォルダー内のソース コードは、同じソースからコンパイルされたコードを扱う場合と同じように扱ってください。

ソースコードの読み取りの問題は、誰かが App_Code フォルダーにアクセスできる場合にのみ問題になります (通常はそうではありません)。

于 2012-07-31T12:06:51.330 に答える
0

アクセサー (public、protected、private など) は、セキュリティとは何の関係もありません。それらは範囲を決定します。

あなたがやったこと - ユーティリティクラスのパブリックメソッドは非常に一般的です。.NET フレームワークはそれらでいっぱいです。たとえば、System.IO.File クラスまたは System.Text.RegularExpressions.Regex クラスを見てください。セキュリティの抜け穴はありません。

于 2012-08-01T21:24:26.663 に答える