Next.JS 13でセキュアにFirebaseを使用する
FirestoreやStorageのsecurity rulesで, 一切のread/writeを拒否する設定にする.
code:a firestore example rule
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
これをすることにより, firebase-admin sdk以外からのストレージ, Firestoreへのアクセスが制限される.
これらのサービスへのアクセスは, server-side componentsやroute handlersでadmin sdkを用いて行う.
Auth
上記で述べられている通り, next-firebase-authはまだNext.js 13 (App Router)に対応していない.
next-firebase-authではmiddlewareを使用することでtokenの検証を行っている.
ここの検証パートで, emailがverifiedでないユーザーや許可したドメイン以外のemailを弾くことで, self signupによる攻撃などを防ぐことができる.
参考