フルスタックチャンネル
サインアップサインアップ
ログインログイン
利用規約プライバシーポリシーお問い合わせ
Copyright © All rights reserved | FullStackChannel
解決済
【Next.jsとPrismaでブログ構築】を本番環境で稼働させる場合について
初心者
Teba_eleven
2023/07/26 12:00

実現したいこと

  • 【Next.jsとPrismaでブログ構築】の動画で作成したプログラムを実際にセキュリティ的に安全に本番環境で動かしたい

以下の動画を閲覧し、勉強させていただいております。その中で、疑問に思ったことを質問させてください。
https://youtu.be/9ybtC6oxNIc

  • このアプリを本番環境で動かす場合、対応する脆弱性などはありますでしょうか?
    • 例えば、CSRFなど
    • 他にも脆弱性がありましたら、教えていただけると幸いです
  • このアプリを本番環境で動かす場合、他に気をつけるべきことは何かあるでしょうか?

以上が質問になります。何卒よろしくお願いいたします。

回答 2件
login
回答するにはログインが必要です
はる@講師
2年近く前

セキュリティ対策のポイントになります。

  1. CSRF対策:Next.jsにはCSRF対策として、APIエンドポイントにトークンを使った認証を組み込む方法があります。例えば、ユーザーがログインした時にサーバーサイドでCSRFトークンを生成し、それをクッキーに保存します。そして、その後の重要なAPIリクエスト(POST、DELETEなど)において、そのトークンをリクエストヘッダーに含めて送信し、サーバーサイドでそのトークンを検証します。

  2. CORS設定:Next.jsではAPIルートにCORSミドルウェアを設定することで、CORSポリシーをカスタマイズできます。

  3. SQL Injection対策:Prismaは型安全なORMであり、ユーザー入力をそのままクエリに含めることが基本的にありません。ただし、生のSQLクエリ(Prismaの$queryRawや$executeRawを使用する場合)を使用する場合は注意が必要です。

  4. パスワードの安全な管理:パスワードをハッシュ化する際には、bcryptやargon2などのライブラリを利用できます。

  5. セキュリティヘッダーの使用:Next.jsではnext-secure-headersというライブラリを使用することで、セキュリティヘッダーを設定することができます。インストール後、next.config.jsに設定します。

  6. 依存関係の管理:npmではnpm auditコマンドを使用して、プロジェクトの依存関係の脆弱性を調査できます。また、GitHubではDependabotという機能を利用して、自動的に依存関係の更新を行うことができます。

  7. エラーハンドリング:敏感な情報が含まれる可能性のあるエラーメッセージをユーザーに返すのではなく、一般的なエラーメッセージを返すようにしましょう。詳細なエラーメッセージはログとしてサーバーに保存するようにします。

以上のように、各種セキュリティ対策を行うことができます。
全ての設定が必ずしも必要とは限らないため、アプリケーションの特性や要件に応じて適切な対策を選択してみてください。

2
Teba_eleven
2年近く前

はるさん、ありがとうございます!!やはり、このままだとCSRFの危険性があるんですね。その他のCORSやセキュリティヘッダーなど、勉強になりました。こちらを参考に、まずはCSRF対策からやってみようと思います。ありがとうございます🙇‍♂️

1