← Rust

LESSON / MIXED

セキュリティ基礎:信頼境界と入力検証

セキュリティ基礎:信頼境界と入力検証を学び、実務での設計判断につなげます。

信頼境界

外部文字列、ファイル、APIレスポンスはString型であるだけでは正しいデータと保証されません。外部から内部へ入る地点で形式・範囲・意味を検証します。

struct UserId(u64);
impl TryFrom<&str> for UserId{
 type Error=std::num::ParseIntError;
 fn try_from(s:&str)->Result<Self,Self::Error>{Ok(UserId(s.parse::<u64>()?))}
}

検証済みの値を専用型に包むと後続処理の前提が明確になります。入力検証と権限確認は別です。

  • SQLは文字列連結せずパラメーター化クエリを使う
  • HTML出力は文脈に合ったエンコードを行う
  • パスは許可した基準ディレクトリ内か確認する
  • 入力長・件数・処理時間に上限を設ける

演習:IDの検証

コード提出フォーム

RUST

安全なサーバー側採点連携が未接続のため、現在は提出できません。

採点基盤準備中

公開テストケース

読み込み中…