この文章は 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 コンポーネントを使用してください。