Next.jsのセキュリティ設計とアーキテクチャ
by
muratak
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
スポンサー LT: Next.jsのセキュリティ設計とアーキテクチャ 10/28 ROSCAFE TECH NIGHT#11 muratak@SWE
Slide 2
Slide 2 text
簡単な自己紹介 muratakについて ・Next.js, ServerSide TypeScript, AWS etc ・@cosmeエンジニア 主にNext.jsやHonoなど技術系発信 → 普段はこれらの活動をしている。
Slide 3
Slide 3 text
Next.jsのセキュリティ設計とアーキテクチャ 今日のテーマ ・Next.js開発でのセキュリティ設計上気をつける点を知り、 Web開発一般におけるセキュリティ設計においても気をつける点を振り返る 注意) 本スライドはエンジニアとして、 また、本イベント会場スポンサーとしての著者の個人見解であり、 発表者の所属会社の技術責任者及び代表として意見するものではありません。
Slide 4
Slide 4 text
What is Next.js? ~最も人気な Reactフレームワーク ~
Slide 5
Slide 5 text
How Next.js works? ~Nextってどうやって動くの? ~ ・Browser | Node.js, Bun, Deno などブラウザとサーバ両面で動く ・Client Componentsはブラウザで実行され、 Server Componentsはサーバーで実行される Next.jsのセキュリティ設計を考える上での肝はそれらの 境界面にある 原則として、機密情報がブラウザー側に露出する設計はセキュリティ上ダメ
Slide 6
Slide 6 text
But in what cases? ~セキュリティ設計上、気をつける点って? ~ 今から一緒に具体例を通してみていきましょう! (一緒に設計するつもりで )
Slide 7
Slide 7 text
Bad Env ~環境変数をどこに置くか ~ ・NEXT_PUBLIC_XXXX で始まる環境変数はブラウザーからアクセスできるので機密情報を入れない。 → サーバー側の環境変数など、セキュアな場所に機密情報は保管せよ
Slide 8
Slide 8 text
Bad Props ~propsの渡し方~
Slide 9
Slide 9 text
Bad Props ~propsの渡し方~
Slide 10
Slide 10 text
Bad Props ~propsの渡し方~
Slide 11
Slide 11 text
Bad Props ~どうやって防ぐ? ~ ・そもそも機密情報を propsとして渡さない(それはそう)・DTOパターン(それはそう) ・Taint APIs (React19の新機能)を使って渡そうとすると強制エラーにする
Slide 12
Slide 12 text
Some ways to protect your apps ・next-auth ・session & pass
Slide 13
Slide 13 text
Some ways to protect your apps ・next-cors ・express-rate-limit ・express-slow-down ・helmet … what else guys?
Slide 14
Slide 14 text
It is your turn! Next.jsのセキュリティについて学びを深め、 いつか一緒に働ける日を楽しみにしています!