WebAPI があり、学生 ID を識別する一意のキーを送信する必要があります。私は ajax 呼び出しを使用しているため、その一意の学生 ID をサービスに送信して、その学生の記録を取得する必要があります。これは、ソースの表示または開発者ツールを介して何らかの方法でエンド ユーザーに表示されます (非表示の html フィールドまたは url post または get パラメーター)。学生が自分のスキームをビューソーシングし、ID を別の学生に変更して、他の学生のデータにアクセスするのを防ぐにはどうすればよいですか? それとも、歴史を見て、最後の学生のIDを見つけて、彼らの歴史にアクセスすることに密接に関連していますか?
3 に答える
クライアントを決して信用しないでください。暗号化されていないリンクや安全でない (信頼できない) クライアントに機密データを送信しないでください。あなたのシナリオでは、独自のセキュリティを管理できるサーバー側のセッションを維持する必要があります。たとえば、正しい学生の詳細にのみアクセスします。そのセッションに一意の非連続キーを与え、そのキーをソルトし、それをクライアントに返されるセッション ID として使用します。クライアントがさらに対話を行う場合、そのトークンを使用してセッションを識別しますが、それを信頼して以降のすべての対話を検証することはありません。これがセッションの仕事です。
- 防御的プログラミングの出発点、
- 防御的コーディング手法でアプリと重要なユーザー情報を防御する
- Web サービス アプリケーションの開発
WebAPI を使用するすべてのユーザーは、最初にログオン資格情報を提供する必要があります。セッション変数とセッション Cookie を使用して、学生 ID などの情報をサーバー側に保存する必要があります。ユーザーが学生「XYZ」であると言った場合は、他の情報を返す前にサーバー側で確認できるはずです。また、悪意のあるユーザーがクライアントがサーバーに送信しているパケットをスヌープし、それを使用してユーザーになりすます可能性があるため、これはまだ安全ではないことに注意してください。適切に保護されたシステムでは、機密データを含むすべてのトラフィックに HTTPS を使用する必要があります。
3DES や Rijndael などのよく知られているアルゴリズムを使用してネットワーク上を移動する機密情報を暗号化し、エンドポイントで復号化する必要があります。