Configured Commerce SDK 5.1 のアップグレード手順と考慮事項

Optimizelyマニュアル|詳細な手順と考慮事項を含む、Optimizely Configured Commerce SDK 5.1へのアップグレードに関する包括的なガイドです。

Optimizely で構成されたコマース SDK をアップグレードするには、以下の手順に従います。

  1. 最新のConfigured Commerce SDKリリースをダウンロードして解凍します。

  2. 5.1.0 SDK src フォルダーから以下をコピーします。

    • フロントエンド

    • Web/_システムリソース

    • ウェブ/アプリ構成

    • ウェブ/エクセル

    • ウェブ/ライセンス

    • ウェブ/プロパティ

    • ウェブ/設定 *

    • Web/gruntfile.js *

    • Web/package.json *

    • .aspx *

    • aspx.cs *

    • Web/validateLicensing.ps

* カスタマイズした内容が失われていないか確認する

  1. InsiteCommerce.Web.csproj を更新します

考えられるアプローチは 3 つあります。

  • 既存の csproj を更新し、5.1.0 SDK と比較して、必要な変更を加えます。

    1. dotnet tool install -g upgrade-assistantをインストールします。

    2. プロジェクトのルートからアシスタントを実行します 。upgrade-assistant upgrade InSiteCommerce.sln --ignore-unsupported-features

    3. プロジェクトファイルをSDKスタイルに変換する

    4. 差分ツールを使用してcsprojファイルを比較します

    5. 変更内容をコピーする

または

  • 新しい csproj をコピーし、何を変更する必要があるかを判断します。 可能性としては次のようなものがあります:

    • NuGet 参照が見つかりません

    • プロジェクト参照がありません

    • 除外する必要がある余分なファイルが含まれています

    • カスタムターゲットまたはビルド前/後のステップ

または

  • InsiteCommerce.Web.csprojの現在のコピーを現在の4.6.0リリースと比較し、それらの変更を5.1.0 InsiteCommerce.Web.csprojに適用します。

  1. web.config を更新する

可能なアプローチは 2 つあります。

  • 既存の csproj を更新し、5.1.0 SDK と比較して、必要な変更を加えます。

    1. dotnet tool install -g upgrade-assistantをインストールします。

    2. プロジェクトのルートからアシスタントを実行します。 upgrade-assistant upgrade InSiteCommerce.sln --ignore-unsupported-features

    3. プロジェクトファイルをSDKスタイルに変換する

    4. 差分ツールを使用してcsprojファイルを比較します

    5. 変更内容をコピーする

または

  • 新しい csproj をコピーし、何を変更する必要があるかを判断します。 可能性としては次のようなものがあります:

    • NuGet 参照が見つかりません

    • プロジェクト参照がありません

    • 除外する必要がある余分なファイルが含まれています

    • カスタムターゲットまたはビルド前/後のステップ

  1. 以下を削除

    1. パッケージ

    2. Web/packages.config

  2. Visual Studio で SDK ソリューションを構築する

  3. カスタムサーバー側コンパイルエラーを修正する

  4. カスタムクライアント側のコンパイルエラーを修正する

アップグレードの考慮事項

4.6 から 5.1 の間に導入されたすべての機能は、5.1 SDK リリースに組み込まれています。 このドキュメントでは、Configured Commerce のバージョン 4.6 からアップグレードする際に考慮すべき特定の領域について説明します。

主な特徴

この SDK で導入された主な機能は、 5.1 SDK リリース アナウンスに記載されています

アップグレードプロセス

  1. 新しいSDKをダウンロードする

  2. NuGetパッケージを更新する

  3. 再コンパイルして重大な変更を特定し、解決する

  4. 新しいコードを導入してサイトを実行し、不一致を特定します。

  5. どのような新機能が望まれるかを判断する

  6. レスポンシブテーマを使用して、新しい変更を組み込みます(クラシックCMSを使用している場合)

注: Configured Commerce のプライベート NuGet フィードは、MyGet からOptimizely パブリック サーバーに移動されました。 Nuget ホストをこの場所に向ける必要があります。

重大な変更

Optimizely は破壊的な変更を最小限に抑えるよう努めますが、場合によっては破壊的な変更が避けられないこともあります。 具体的な変更内容は、各リリース ノートに添付されている累積スプレッドシートに詳しく記載されていますが、コンパイルの問題を探して個別に修正する方が簡単な場合があります。 (スプレッドシートの下部にある 2 つのタブに注意してください。1 つは累積的な重大な変更用、もう 1 つはSpireの重大な変更用です。)

潜在的な警告

5.1 SDK コードで npm 監査を実行すると、次の脆弱性が発生する可能性があります。

Immer

これは、Optimizely Configured Commerce では使用されない applyPatches 関数と enablePatches 関数にのみ適用され、アプリケーションのリスクは低くなります。

タイトル

重大度

脆弱なバージョン

Prototype Pollution in immer

高い

<9.0.6

Prototype Pollution in immer

致命的

<9.0.6

Prototype Pollution in immer

高い

<8.0.1

ANSI HTML

これは、パッケージ ansi-html のすべてのバージョンに影響します。 攻撃者が悪意のある文字列を提供すると、入力の処理が非常に長い時間停止することになります。 これは、開発環境のピア依存関係であるため、Optimizely Configured Commerce にとってのリスクは限定的です。

タイトル

重大度

脆弱なバージョン

Uncontrolled Resource Consumption in ansi-html

高い

<=0.0.7

Glob-parent

これは、5.1.2 より前のパッケージ glob-parent に影響します。 パス区切り文字を含む囲みで終わる文字列をチェックするために使用される囲み正規表現。 glob-parent は開発依存関係である webpack と babel の依存関係であるため、Optimizely Configured Commerce にとってのリスクは限定的です。

脆弱なバージョン

タイトル

重大度

Regular expression denial of service

高い

<5.1.2

SSRI

npm `ssri` 5.2.2-6.0.1 および 7.0.0-8.0.0 は、サービス拒否攻撃に対して脆弱な正規表現を使用して SRI を処理します。 悪意のある SRI は処理に非常に長い時間がかかり、サービス拒否につながる可能性があります。 この問題は、厳密なオプションを使用している消費者にのみ影響します。 SSRIはwebpackの依存関係であるため、このリスクはOptimizelyConfiguredCommerceに限定されます。

タイトル

重大度

脆弱なバージョン

Regular Expression Denial of Service (ReDoS)

高い

>=5.2.2 <6.0.2

Handlebars

4.7.7 より前のパッケージ ハンドルバーは、信頼できないソースからのテンプレートをコンパイルするために特定のコンパイル オプションを選択した場合に、リモート コード実行 (RCE) に対して脆弱です。 これは、Handlebars を直接使用しないため、Optimizely Configured Commerce にとって限定的なリスクであり、開発依存関係のピア依存関係です。

タイトル

重大度

脆弱なバージョン

Remote code execution in handlebars when compiling templates

致命的

<4.7.7

Ini

バージョン 1.3.6 より前の `ini` npm パッケージには、プロトタイプ汚染の脆弱性があります。 Ini は、Optimizely Configured Commerce の開発依存関係であるため、リスクは低くなります。

タイトル

重大度

脆弱なバージョン

Prototype Pollution

高い

<1.3.6

Trim-newlines

Node.js の 3.0.1 より前の trim-newlines パッケージおよび 4.0.1 より前の 4.x には、.end() メソッドに対する正規表現サービス拒否 (ReDoS) に関連する問題があります。 この依存関係は、バックエンドでテンプレートを生成するために特定のファイルで使用されるテンプレート ファイルの依存関係であり、Optimizely Configured Commerce のリスクが低くなります。

タイトル

重大度

脆弱なバージョン

Regular Expression Denial of Service in trim-newlines

高い

<3.0.1

Node-fetch

Node-fetch は、権限のないアクターに機密情報が漏洩する危険性があります。 これは、サーバー側レンダリングのデータ呼び出しを実行する isomorphic-fetch の依存関係です。 したがって、Optimizely Configured Commerce のリスクは低くなります。

タイトル

重大度

脆弱なバージョン

node-fetch is vulnerable to Exposure of Sensitive Information to an Unauthorized Actor

高い

<2.6.7