Docs/学習者向け/スタック設定

スタック設定

トレーニング体験をカスタマイズするために、優先プログラミング言語とフレームワークを設定します。SecureCodingHubは自動的に優先スタックでチャレンジを表示します。

設定の方法

プラットフォームを初めて訪問するとき、3ステップウィザードが優先言語とフレームワークの選択を案内します:

ステップ選択オプション
ステップ1バックエンド言語JavaScript、TypeScript、Python、Java、C#、PHP、Go
ステップ2フロントエンドフレームワークReact (TS/JS)、Vue (TS/JS)、Angular (TS/JS)
ステップ3モバイルプラットフォームSwift (iOS)、Kotlin (Android)
app.securecodinghub.com/preferences
ステップ 1 / 3 · バックエンド
バックエンド言語を選択

SQL injection、SSRF、コマンドインジェクションのチャレンジをこの言語でデフォルトで表示します。

JS
JavaScript
Node.js · Express
TS
TypeScript
Node.js · NestJS
PY
Python
Django · FastAPI
JV
Java
Spring Boot
C#
C#
.NET 8
PHP
PHP
Laravel · Symfony
GO
Go
Gin · Fiber

設定の仕組み

SecureCodingHubの各トピックには、設定カテゴリの1つにマップされるstackTypeがあります。チャレンジを開くと、プラットフォームは自動的に設定に一致する言語を選択します。

スタックタイプマップされた設定例のトピック
バックエンドバックエンド言語設定SQL Injection、SSRF、コマンドインジェクション
フロントエンドフロントエンドフレームワーク設定XSS、DOM Clobbering、Prototype Pollution
モバイルモバイルプラットフォーム設定安全でないストレージ、WebViewインジェクション、証明書ピンニング

チャレンジを開くと、正しい言語がデフォルトで表示されます。任意のチャレンジ内の言語セレクターを使用していつでも別の言語に切り替えられます。

ステップのスキップ

各ウィザードステップには、主要なアクションの隣にスキップボタンがあります。スキップしてもウィザードを放棄するわけではありません — そのステップに合理的なデフォルトを適用し、続行できます。デフォルトは次の通りです:

  • バックエンド: JavaScript
  • フロントエンド: React (TypeScript)
  • モバイル: Kotlin (Android)

スキップは、ステップが今日あなたに当てはまらない場合の正しい選択です — 例えば、フロントエンドエンジニアがバックエンドステップをスキップしてデフォルトを取る場合。後で戻ってきて、同じウィザードを通じてデフォルトを上書きできます。

設定の変更

トップバーのスタックインジケーターチップ (選択したスタックアイコンを表示) はクリックでウィザードを再度開きます — それが設定を更新する日常的な方法です。変更はすべてのチャレンジとトピックで即座に有効になります。設定はスタック設定の下のプロフィールにも存在し、ピッカーを再起動せずに何が設定されているかを検査したいときに便利です。

トピックがあなたの言語に存在しない場合

すべてのチャレンジがすべての言語でまだ配信されているわけではありません。作者がまだあなたの優先言語のスニペットを提供していないトピックを開くと、プラットフォームは決定論的なチェーンを介してフォールバックします: そのトピックの領域に対するスタック設定、次にトピック自身の作者定義デフォルト、次にJavaScript、次に最初に利用可能な言語。チャレンジヘッダーで言語ラベルが変わるのを見るので、フォールバックは決して静かではありません — しかし、「トピックが利用できません」画面は見ません。

管理者向け

設定はユーザーごとに保存されます。管理者は学習者の設定を設定できません — 各開発者は自分のスタックを選択します。これにより、すべてのチームメンバーが日々実際に使用している言語でトレーニングすることが保証されます。

デバイス間の同期: 設定はデバイス間で同期します。別のブラウザからログインすると、設定が自動的にロードされます。

スタックが重要な理由

TypeScript開発者がPHPチャレンジを読むと、注意のほとんどを脆弱性を探す代わりに馴染みのない構文の解析に費やします。認知負荷は本物で、時間コストは本物です。スタック設定は、概念を教えるために使用される言語が概念を学習する障壁にならないように存在します。構文が流暢になると、目は信頼境界と安全でないプリミティブに直行します。それが構築したい筋肉記憶です。半分しか読めない言語のチャレンジは、間違った方向にあなたを訓練します: あなたは馴染みのないコードの平均的に良いデバッガーになりますが、自分のコードの自信に満ちたレビュアーにはなりません。

これは設定が組織ごとではなくユーザーごとである理由でもあります。チーム管理者はPythonエンジニアにJavaチャレンジを強制できません。各開発者はレビュー、出荷、オンコールするスタックでトレーニングする必要があります。選択された言語が任意のチャレンジで表示されるデフォルトスニペットをどのように駆動するかについては、練習モードを参照してください。

スタック設定を広げるタイミング

スタック設定は永続的ではありません。バックエンドとフロントエンドの間を本当に移動するフルスタックエンジニアは、主要なバックエンドとフロントエンドを選択し、要求に応じて切り替えるためにチャレンジ内言語セレクターを使用する必要があります。今後のプロジェクトのために新しい言語を学ぶエンジニアは、広げるためのもう1つの一般的なケースです: 最初のプルリクエストが着地する前にレビューの流暢さを構築するために、新しいスタックで数週間トレーニングします。設定からいつでも切り替えて戻ることができます。

フラグを立てる価値のある特定のケースは、複数のスタックにわたってプルリクエストをレビューするシニアまたはスタッフエンジニアです。単一のバックエンド言語を選択すると、APIおよびインフラストラクチャ隣接の脆弱性に現れる言語横断パターンが隠れます。四半期ごとに設定を回転させるのは、その役割にとって合理的な習慣です。

スタックがチーム課題とどのように相互作用するか

組織管理者がクイックスタートで課題を作成するとき、カテゴリ、トピック、またはシナリオを選択します。言語は選択しません。各割り当てられた学習者は、自身のスタック設定に一致する言語で割り当てられたコンテンツを見ます。単一の「OWASP Web Top 10」課題は、バックエンドチームにはPythonチャレンジ、フロントエンドチームにはReactチャレンジ、iOSチームにはSwiftチャレンジとして着地できます。それが意図された設計です: 1つの課題、多くのスタック、一貫したカバレッジ。管理者は重複した言語ごとの課題を作成してそれを回避しようとすべきではありません。