ASP.NET が ASP Classic よりも安全であるといういくつかの場所を読みました。しかし、理由の実際の議論を見たことはありません。
例として、標準のログイン システムを使用します。ユーザーは、フォームを介してサーバーにユーザー名とパスワードを送信します。これは、両方の言語で同じ方法で行われます。どちらの言語でも、残りはサーバー上で行われます。ここで ASP Classic ではなく ASP.NET を選択する理由
ASP.NET が ASP Classic よりも安全であるといういくつかの場所を読みました。しかし、理由の実際の議論を見たことはありません。
例として、標準のログイン システムを使用します。ユーザーは、フォームを介してサーバーにユーザー名とパスワードを送信します。これは、両方の言語で同じ方法で行われます。どちらの言語でも、残りはサーバー上で行われます。ここで ASP Classic ではなく ASP.NET を選択する理由
ScottRFrost が述べたように、Request Validationはデフォルトで XSS から保護します。個人的には、これをオフにして、代わりに出力サニタイズを使用するアプリケーションを開発することを好みます (たとえば、HTML で出力を Web ページにエンコードするか、JavaScript で使用される出力を適切にエンコードしてエスケープします)。このアプローチはユーザー入力を制限しないため、リクエストの検証のようにアプリケーションの機能を制限しません。たとえば、HTML をフィールドに入力して、ブラウザで解釈するのではなく、Web ページに表示できるようにします (HTML の投稿を許可していない HTML 開発者フォーラムを想像してください)。この方法を ASP.NET で使用する場合は、ページへの変数出力に関して、標準の ASP 開発と非常によく似たアプローチを使用します。
あなたの指摘に答えるために、認証中 (ユーザー名とパスワードの組み合わせの検証) には、クラシック ASP と ASP.NET の間に大きな違いはありません。ASP.NET は、ページにドロップできるいくつかのユーザー コントロールを提供し、メンバーシップ プロバイダーモデルも提供しますが、基本的には、どちらの方法でもロジックを実装する必要があります。
ASP.NET には認証コンポーネントも標準で含まれているため、web.config ファイルの設定から、アプリケーション全体または特定の URL パスへのアクセスを制限することができます。これにより、開発者がページごとに認証チェックを含めるのを忘れるのを防ぎます。ただし、より細かいアクセス チェックは、ASP.NET で手動で処理する必要があります。
ASP.NET には、Web サーバー経由で読み取ることができない /App_Data などの特殊なフォルダーも用意されています。これにより、HTTP 経由で直接読み取るべきではないアプリケーション関連のファイルを保存する便利な場所が提供されます。従来の ASP では手動でこれを行うことができますが、このディレクトリを Web ルートの外部に格納するか、IIS ユーザーがこれらのファイルを読み取れないようにローカル フォルダーのアクセス許可を設定する必要があります。
要約すると、初心者の開発者が ASP.NET で XSS の脆弱な Web サイトを作成する可能性が低いという事実を除いて、ASP.NET が従来の ASP よりも本質的に安全であるとは言えません。
ASP.NET には、一部の一般的なスクリプト攻撃を制限するRequest Validationなどの機能が既定で含まれています。従来の ASP では自分で行うことができますが、.NET では既定です。
セキュリティ上の問題が発生する可能性があります。でも一つ気になることがあります。SQLインジェクションについてです。Asp.net は、パラメーター化されたクエリと HTML エンコード デコード技術の機能を提供しています。詳細については、 ASP.net セキュリティのリンクをクリックしてください。