| English | 意味 |
|---|---|
| parameterised query/ˌpærəˈmetəraɪzd ˈkwɪərɪ/ | パラメータ化クエリ |
有効なIDであっても非公開データを要求できる場合がある
- 学生IDは有効な整数値であっても、別の誰かのものである可能性があります。入力検証のみでは非公開のコースリストへのアクセスを許可してはいけません。
- このルートでは、認証済みの学生は自分のリストのみを読むことができます。非公開の行を取得する前に、呼び出し元のアイデンティティを解決し、そのポリシーを強制してください。
提出された学生IDは正しい型を持っている。プライベート照会では、まだ何をチェックすべきか?
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
正しい形状はアクセス権を担保しない。
許可された行とフィールドのみを取得する
- パラメータ化クエリにより、許可された学生IDをデータとしてバインドします。インターフェースに必要なフィールド(コースIDやタイトルなど)のみを選択してください。
- すべての学生に対して非公開レコードをダウンロードし、ブラウザで不要なものを隠さないでください。受け手は完全な応答をinspectする可能性があります。
なぜ、全学生の私人記録を送信せず、ブラウザのフィルタリングで単に非表示にするのではなくてはいけないのですか?
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
行を返す前に、サーバー側で私人データのアクセス権限を厳格に検証すべきです。
空の応答と拒否応答を定義する
- この契約において、履修科目のない許可された学生に対しては 200 と
[]が返される。存在しないリソースや拒否された呼び出し元については、合意されたAPIポリシーに従う。 - 一部のポリシーでは、404 を用いて秘密の存在が露出しないようにする。このポリシーを一貫性を持たせ、不測のデータベースエラーを隠すために成功応答を使用しないこと。
このルート契約において、存在する学生が履修している科目がない場合、適切な応答はどれですか?
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
空リストの正常な返却はデータベースのエラーではありません。
混乱を招かない状態で応答をレンダリングする
- 成功した場合は、選択された履修科目タイトルをテキストとして表示する。「まだ履修科目はありません」は、空の応答が正常に完了した後にのみ表示する。
- ロード中は、リクエストが保留中であることを示す。失敗した場合は、リストの読み込みができないことを説明し、適切な再試行の機会を提供すること。リストが空であるとは主張しないこと。
空リストでの成功とリクエスト失敗に対して、別々のメッセージを作成する。
難易度 3/5 · 200 コイン + 今日初回完了時に小ボーナス付与
「まだコースがありません」は「コースの読み込みに失敗しました。再度お試しください。」とは異なる。
応答の進行状況を表示に合わせる。
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
観察された結果が裏付けるものだけを表示する。
半端な保存を伴わず状態変更を処理する
- 複数の関連するデータベース変更を含む書き込みには、トランザクションが必要になることがある。意図した変更をまとめてコミットするか、失敗した場合はすべてロールバックする。
- 書き込みを個別に検証・承認する。過去の読み込みが成功したからといって、すべての後続の変更を承認できるわけではなく、ドロップダウンの値をそのままSQLに貼り付けても安全ではない。
ユーザーが他の値を送信できないため、ドロップダウンの値はSQLへの貼り付けに安全である。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
呼び出し元は改変されたリクエストを送信できる。値をバインドし、サーバーで検証する。
関連する書き込みにはトランザクションが必要であり、失敗時に意図した変更の半分だけが保存されたままにならないようにするためである。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
トランザクションは意図したグループをコミットするか、ロールバックするかできますが、検証と権限付与は依然として必要である。
完全な許可済み経路を確認する
- 識別と権限 → 有効な入力 → パラメータ化された照会 → 定義された応答 → 正直な表示へと追跡する。表示を確認する前に、アクセス拒否のテストを行う。
- 通常のリスト、空のリスト、および失敗したリクエストに対するフィクスチャを使用する。許可された応答に、プライベートフィールドや他の学生の行が含まれていないことを確認する。
正しいクエリは、正しいルートの一部である。呼び出し元、許容されるデータ、応答の契約、および可視化された状態もまた一致している必要がある。
この許可されたコース一覧ワークフローを順序立てて実行する。
難易度 3/5 · 200 コイン + 今日初回完了時に小ボーナス付与
サーバーのチェックは、取得および配送に先立つ。