この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Salesforce ドメインでの JavaScript の実行

複数のベンダーからの JavaScript コードを同じオリジンで実行できます。コードの干渉を防ぐため、ベンダーの JavaScript コードは Sandbox 化されます。Sandbox の外に出したり、オリジンの外部でコードを実行したりしようとしないでください。適切なオリジンで実行される Visualforce、Aura、または Lightning Web コンポーネントを使用します。

Salesforce 組織では、パッケージ化されていない顧客コード、Salesforce コード、パッケージ化されているコードなど、多くの異なる種類の JavaScript コードが実行されます。一般にコードは、互いに共同作業する手段を持たない複数のベンダーから提供されます。それらのコード��同じオリジンで実行すると、あるベンダーのコードが他のベンダーのコードに干渉する場合があります。

コードの干渉を防ぐため、ベンダーの JavaScript コードは Sandbox 化されます。Visualforce ソリューションの場合、JavaScript コードは、一意のベンダー固有のオリジンで Sandbox 化されます。Lightning ソリューションと Lightning Web コンポーネント (LWC) の場合、JavaScript は、一意のベンダー固有の Locker で Sandbox 化されます。

Sandbox の外に出したり、オリジンの外部でコードを実行したりしようとすることは、セキュアなコーディングに違反します。ベンダーが作成した JavaScript コードを、ホームページコンポーネント、Web リンク、またはカスタムボタンを介して Salesforce オリジンで実行しようとすることも、セキュアなコーディングの違反に含まれます。

多くの場合、適切なオリジンで実行される Visualforce、Aura、または Lightning Web コンポーネントを使用して、同じ機能を実現できます。

メタデータの例

この例のメタデータは、カスタムオブジェクトを表しています。このカスタムオブジェクト内の Web リンクは、REQUIRESCRIPT ステートメントを使用して定義されます。管理パッケージで REQUIRESCRIPT を使用すると、セキュリティの脆弱性が生じます。これは、ベンダーがそのコードを Salesforce オリジンに挿入するからです。管理パッケージは、名前空間の Sandbox 内にとどまる必要があります。この Sandbox の外でスクリプトを実行することはできません。

オブジェクトにコードを直接埋め込むのではなく、Visualforce Aura コンポーネントの Visualforce ボタンを作成するか、または Lightning Web コンポーネントを使用してください。