Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
そのNext.js(Server Actions)の セキュリティを意識できていますか?(Te...
Search
Ken Watanabe
June 05, 2025
350
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
そのNext.js(Server Actions)の セキュリティを意識できていますか?(Techbowl&カミナシの勉強会 on 2025/5/30 @Kaminashi )
Ken Watanabe
June 05, 2025
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
400
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
230
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
340
Transcript
そのNext.js(Server Actions)の セキュリティを意識できていますか? StatHackカンパニー 渡邉健 Techbowl&カミナシの勉強会 in 2025/5/30 @Kaminashi 5F
Kaminashiではプロダクトをリリースする前に Production Readiness Checkをしています リリースするにあたり、Kaminashiの定める満 たすべきセキュリティ要件を自社のセキュリ ティエンジニアともに確認します (2hours~) 今回はそれを踏まえKaminashiでも導入事例の 多いNext.js特有の意識し損ねそうな点を一部
抜粋します はじめに https://kaminashi-developer.hatenab log.jp/entry/2025/05/16/090000
• Next.js 14以降 Next.jsは大きく変わった ◦ その中で最大のフロントエンドコミュニティでの変化の一つ Server Actions Next.jsはじめましての方に向けて
従来のアーキテクチャ 従来のアーキテクチャと比較したServer Actions フロントエンドとAPIの分離 API (Express) フロントエンド (React) fetch API
Server Actionsによる置き換え (Next.js 15) 従来のアーキテクチャと比較したServer Actions Server Actionsによる クライアント・サーバのやり取り サーバの関数を呼ぶ
(実態は中でFetchが呼 ばれる) ‘use server’をつけることで server内で実行される関数に 関数呼び出しだけサーバとの通信も完結 する、圧倒的記述量の少なさっ API・フロント開発をまとめてできちゃう
やっていることはただのFetch 内部の通信をDebugしてみよう Next.jsが内部で隠蔽するPOSTリクエスト curlでも、もちろん レスポンスが帰ってくる
Pros • 記述量が圧倒的に少ない! • APIをデプロイしなくていいぶん運用が楽! Cons • フロントエンドとサーバの秘密情報の距離が小さくなった ◦ “use
server”をつけそのこねるだけで、サーバの持つ秘密情報にアクセスできることも ◦ その関数はサーバで実行されていることを常に意識し続ける必要あり • どこでリクエストが発生するのか追いづらい ◦ 明示的なfetchがなくなるため 個人的なPros/Cons
クライアントと Server Actionsはちゃんと分離して 秘密情報にアクセスされないように 最大限の配慮を
ナイトメアサーバアクション ファイルの引数で パストラバーサル 環境変数を返している
ちゃんとFetchが実行されることを 意識しよう
「クライアントで実行される感」が強くなってしまうが故に、 改めてサーバに送るFetchなんだぞ!ってことを意識しよう ブラウザで処理するな らまだしも、 巨大なデータが送られ るので気をつけよう
(備忘録)巨大なリクエストを防ぐには? 一応デフォルトでは 1MByteのデータまでし か送れない next.config.ts で調整可能
サーバ側でも バリデーションをちゃんとしよう
クライアントとサーバが近くて、ついついクライアントでのみのバリデーションになりがち あくまでServer Actionsの実態はサーバでcurlでも叩けちゃうのだ Next.jsが隠蔽するけど どんなリクエストも 送れるのでちゃんと バリデーションしよう
ちゃんとHSTSなど ヘッダーの設定をしよう
セキュリティーを向上させるヘッダをちゃんとつけよう 結局は内部はAPIなので、 ちゃんとヘッダー等の 設定をしてあげよう
ご清聴ありがとうございました!