Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
そのNext.js(Server Actions)の セキュリティを意識できていますか?(Te...
Search
Ken Watanabe
June 05, 2025
390
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
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
740
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
690
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Prompt Engineering for Job Search
mfonobong
0
450
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
670
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
202
76k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
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なので、 ちゃんとヘッダー等の 設定をしてあげよう
ご清聴ありがとうございました!