ASP開発のWebページに関するメモは、rainman_netのブログからお勧めします
キーワードASP Web開発に留意することが重要です
ソース
ユーザーが入力したコンテンツが適切なサイズであるか、適切な文字が含まれているとは信じられません。ユーザー入力は、それを使用して意思決定を行う前に常に検証する必要があります。最良のオプションは、com+コンポーネントを作成して、ASPページから呼び出してユーザーの入力を確認できるようにすることです。また、server.htmlencodeメソッド、server.urlencodeメソッド、またはこのページの下部にあるコードの例のいずれかを使用することもできます。
ユーザーが入力した文字列を接続して、ASPページにデータベース接続文字列を作成しないでください。悪意のあるユーザーは、コードを入力に挿入することにより、データベースへのアクセスを取得できます。 SQLデータベースを使用している場合は、ストアドプロシージャを使用してデータベース接続文字列を作成します。
デフォルトのSQL管理者アカウント名SAを使用しないでください。 SQLを使用しているすべてのユーザーは、SAアカウントが存在することを知っています。安全で信頼できるパスワードを使用して別のSQL管理アカウントを作成し、SAアカウントを削除します。
クライアントのユーザーパスワードを保存する前に、これらのパスワードにハッシュアルゴリズム、base64エンコードを使用するか、server.htmlencodeまたはserver.urlencodeを使用してエンコードしてください。このページの下部にあるコード例を使用して、クライアントパスワードの文字を確認することもできます。
管理スクリプトまたはASPページに管理アカウント名またはパスワードを配置しないでください。
タイトルデータは悪意のあるユーザーが偽造できるため、要求されたタイトルに基づいてコードに決定を下さないでください。要求されたデータを常にエンコードするか、次のコードの例を使用して、含まれる文字を確認してください。
Cookieに安全なデータを保存したり、Webページに入力フィールドを非表示にしたりしないでください。
セッションベースのアプリケーションには、Secure Socketsレイヤー(SSL)を常に使用して、セッションCookieを暗号化せずに送信するリスクを回避してください。セッションCookieが暗号化されていない場合、悪意のあるユーザーは1つのアプリケーションでセッションCookieを使用して、それと同じプロセスで別のアプリケーションを入力できます。
ISAPIアプリケーション、フィルター、またはcom+オブジェクトを作成する場合、変数とデータのサイズによりバッファオーバーフローに注意してください。また、相対パス名またはURLとして絶対パス名を解釈するなど、解釈によって引き起こされる可能性のある正規化の問題に注意してください。
シミュレートされたトークンは、単一のスレッドユニット(STA)内で実行されるASPアプリケーションがマルチスレッドユニット(MTA)に切り替わると時代遅れになります。これにより、アプリケーションがシミュレーションなしで実行される可能性があり、他のリソースへのアクセスを可能にする可能性のあるアイデンティティで効果的に実行できるようになります。スレッドモデルを切り替える必要がある場合は、変更を行う前にアプリケーションを無効にしてアンインストールしてください。