
React セキュリティ & ベストプラクティス
XSS対策、CSRF保護、dangerouslySetInnerHTML、Content Security Policy、HTTPS、サニタイズ
22 面接問題·
Senior
1XSS(クロスサイトスクリプティング)攻撃とは何ですか?
1
XSS(クロスサイトスクリプティング)攻撃とは何ですか?
回答
XSS攻撃は、悪意のあるJavaScriptコードをWebアプリケーションに注入し、他のユーザーのブラウザで実行させる攻撃です。攻撃者はバリデーションやエスケープの脆弱性を悪用して、クッキーやセッショントークンを盗んだり、不正な操作を実行したりします。ReactはJSX値を自動的にエスケープすることでネイティブな保護を提供していますが、dangerouslySetInnerHTMLや直接DOM操作では脆弱性が残ります。
2ReactはデフォルトでXSS攻撃からどのように保護しますか?
2
ReactはデフォルトでXSS攻撃からどのように保護しますか?
回答
ReactはJSXを通じて挿入されたすべての値をレンダリング前にプレーンテキストに変換することで自動的にエスケープします。この保護により、HTMLコードがデータに注入されてもスクリプトの実行が防止されます。HTMLを解釈・実行するinnerHTMLとは異なり、Reactはタグをプレーンテキストとして扱うため、標準的なpropsやstateを通じた悪意のあるJavaScriptの注入が不可能になります。
3ReactでdangerouslySetInnerHTMLが危険とみなされるのはなぜですか?
3
ReactでdangerouslySetInnerHTMLが危険とみなされるのはなぜですか?
回答
このプロパティはエスケープなしに生のHTMLをDOMに直接挿入することでReactのネイティブXSS保護をバイパスします。コンテンツが信頼できないソースや外部APIから来た場合、実行される悪意のあるJavaScriptが含まれる可能性があります。明示的な名前dangerouslySetInnerHTMLは、開発者がセキュリティリスクを意識的に認識し、DOMPurifyなどのライブラリで適切なサニタイズを実装することを強制します。
4
Stored XSSとReflected XSS攻撃の主な違いは何ですか?
5
ReactでExternal APIからのHTMLを表示するために優先すべきアプローチは何ですか?
+19 面接問題
その他のReact / Next.js面接トピック
JavaScript の基礎
Junior
25問React の基礎
Junior
20問React Hooks
Junior
22問コンポーネントのライフサイクル
Junior
18問React Router
Junior
20問Contextを使った状態管理
Junior
18問フォームと Controlled Components
Mid-Level
20問データ取得と API
Mid-Level
20問React Query (TanStack Query)
Mid-Level
20問Styling & CSS-in-JS
Mid-Level
18問Next.jsの基礎
Mid-Level
25問TypeScriptとReact
Mid-Level
20問Next.js データフェッチング
Mid-Level
24問Next.js Server Actions
Mid-Level
20問Next.jsのルーティングとナビゲーション
Mid-Level
22問Next.js API Routes
Mid-Level
20問Next.js Metadata & SEO
Mid-Level
18問Next.js の Middleware と Auth
Mid-Level
22問React テスト
Mid-Level
20問Zustand State Management
Mid-Level
18問React パフォーマンス最適化
Senior
22問Error Boundaries & エラーハンドリング
Senior
18問Advanced React Patterns
Senior
20問Next.jsの高度な機能
Senior
24問Next.jsのデプロイメントと本番環境
Senior
20問アーキテクチャ & デザインパターン
Senior
22問React Server Components
Senior
26問Next.js の国際化
Senior
20問