セキュリティ
作成日時:2024-09-29
更新日時:2025-07-22
JWT / JWK
- JSON形式のトークンと暗号鍵
- JWTの仕組み
JWT
- JSON web token
- {ヘッダー}.{ペイロード}.{署名}のBase64
- 復号して検証する
JWK
- JSON web key
- JSONで表した暗号鍵
- 鍵の正当性の検証方法は色々
- サーバー証明書みたいにCAとかでも
CORS
- Cross origin resource sharing
- 同一生成元ポリシーを回避するためのもの
- 別にセキュリティの技術ではない
- 悪意のあるサイトに送信させようと思えばできる
- プリフライトリクエスト
- JavaScriptで何らかの通信をする際に、送信する内容がSOPに引っかかるか確認するためのリクエスト
- 単純リクエストの場合は投げない
- OPTIONSメソッドを使う
- 使用可能なメソッドやオリジン、ヘッダーなどが返却される
- 変なとこに情報を送信させたくなければCSPの実装とXSS対策
DoS対策
IPごとの同接制限
SELinux
- Security-Enhanced Linux
- アクセス管理を所有者/グループ/その他だけではなく、rootも対象にしたり、プロセス単位での権限を付与したりできる
TOTP
サーバとクライアントで秘密鍵を共有。
その鍵と時刻でトークンを生成。
トークンを渡して検証。
ログに個人情報を載せるな
セキュリティ
- CSPで不正なスクリプトの実行を阻止
- CORSで外部からの不正なアクセスを防ぐ
- CSRFトークンで正しい画面から送信されたことを確認
- リファラチェックで正しいドメインから送られたことを確認
- Authorizationヘッダーを見て認証済みかを判断
- Cookieは適切に
- アプリ側でデータへのアクセス権限があるかを確認
ペッパー
別の所においてあるソルト。
シークレットソルトともいう。
npm脆弱性確認
npm audit
npm audit fix