【しんらいきょうかい】
信頼境界 とは?
最終更新:
💡 管理の持ち場が変わるところに置く「確認の目印」
システムの中で、管理・制御する主体や信頼の前提が変わる境目。利用者のブラウザとサービスのサーバーの間などを指し、境界を越えるデータや操作にどんな確認が必要かを考える目印になる。
📌 このページのポイント
- 誰がデータや処理を制御できるかが変わる場所に注目する
- 境界を越える入力の検証や、利用者の認証・操作の権限確認を検討する
- 図に境界線を描くだけで安全になるわけではなく、対策の実装と検証が必要
ペンギン先生、設計図に書いてある「信頼境界」って何なの?
同じサービスの画面なのに、信用できないの?
画面を提供しているのはサービスでも、手元のブラウザから送る値は利用者が変更できるからだよ。信頼境界は人を悪者と決めつける言葉ではなく、誰が変更できるかを整理する目印なんだ。
じゃあ境界では何を調べるの?
たとえば架空の注文サービスで数量を整数の1〜10個に限定しているなら、11個という入力はサーバー側で拒否するよ。さらに、注文する本人か、対象の注文を操作してよいかも別に確認するんだ。値が範囲内でも、他人の注文を変更してよいことにはならないからね。
境界って、社内とインターネットの間にだけあるの?
そこだけではないよ。別の組織が管理する連携先からデータを受け取る場合も、誰の管理下かを確認する必要があるんだ。ネットワークの場所だけで決めず、データの流れと管理主体を見て設計図へ書き込むんだね。
図に関所を描けば、防げるようになるの?
もっと詳しく知りたい人へ
画面側で数量をチェックしていれば、サーバー側の検証は省ける?
省けません。ブラウザのJavaScriptによる検証は回避できるため、サーバー側で処理に使う前にも確認します。画面側の検証は入力ミスを早く知らせるために役立ちますが、安全のためのサーバー側検証の代わりにはなりません。また、入力検証だけでSQLインジェクションやXSSなどへの対策がすべて済むわけではありません。
まとめ:ざっくりこれだけ覚えればOK!
「信頼境界」って出てきたら「管理や信頼の前提が変わり、受け渡しを確認すべき境目」と思えばだいたいOK!
📖 おまけ:英語の意味
「Trust Boundary」 = 信頼の境界
💬 trustは「信頼」、boundaryは「境界」。何を信頼してよいかという前提の変わる境目を表す言葉だよ。