メインコンテンツまでスキップ

「security」タグのついた10記事

全てのタグを見る

TLS と証明書 — 何を信じて暗号化しているか

TLS が保証する 3 つの性質のうち、証明書が担うのは相手の同一性であることを解説します。証明書チェーンの検証、中間証明書の配信責任、TLS 終端の位置が変えるもの、証明書エラーの読み分けを扱います。

Web アプリの主要な攻撃と対策

XSS・CSRF・SQL インジェクションを中心に、Web アプリの主要な攻撃を「成立条件」から整理し、その条件を崩す対策を導きます。エスケープとプレースホルダの違い、CSRF トークンと SameSite の関係、認可不備が最多である理由を扱います。

オリジンと CORS — ブラウザが何を境界にして遮るか

オリジンを scheme・host・port の 3 つ組として定義し、同一オリジンポリシーが遮るのは読み取りであって送信ではないことを解説します。プリフライトが飛ぶ条件、ワイルドカードと資格情報が併用できない理由、Vary の必要性を扱います。

クッキー — 誰が、いつ、どこへ自動で送るか

クッキーの属性を「どこへ送るか」「いつまで持つか」「誰が読めるか」の 3 つに整理し、スコープがオリジンと一致しないことから生じる事故を解説します。Domain がサブドメインへ広がること、SameSite の判定が site 単位であることを扱います。

文字コード — 文字とバイト列の対応

文字集合と符号化方式の違いを起点に、文字の数え方が 4 通りあること、同じ文字に見えて違うバイト列になる正規化、並べ替えと比較を決める照合順序、保存時にバイト数で効く上限、そして解釈の境目が複数あることが生む脆弱性を扱います。

認証・認可設計 — JWT と層別の責務分担

DDD とクリーンアーキテクチャでの認証 (Authentication) と認可 (Authorization) の設計を解説。認証と認可はプレゼンテーション層、ビジネスルールはドメイン層という責務分担、JWT の構造、Laravel × tymon/jwt-auth の実装、アクセス/リフレッシュトークン、ロールベース認可をまとめます。

認証と認可 — 誰かを確かめることと、何を許すこと

認証 (Authentication) と認可 (Authorization) の違いを、順序・失敗時のステータスコード・実装場所の観点から解説します。認証の 3 要素、セッションとトークンの持ち回り方、RBAC などの認可モデル、記述問題で答えるときの骨子を扱います。