Loading

Salesforce へのリクエストURIエンコーディングについて(変更適用日:2018年2月11日)

公開日: Feb 9, 2026
説明

Salesforceは2018年2月11日から、HTTPリクエストのURIエンコードを厳格にUTF-8のみ対応する変更を実施しています。これにより、適切にエンコードされていないリクエストはセキュリティリスクとみなされ無効となります。お客様の環境で影響がないかご確認いただき、必要に応じて対応を行ってください。詳細は下記をご参照ください。

 

解決策

変更の概要

Salesforce では、Salesforce サービスへの HTTP リクエスト(URL、フォームのデータ等)に、不適切な文字が含まれていた際の処理を見直し、適切な UTF-8 のみ処理するように改善します。これにより、「UTF-8 を適切に % エンコードした文字」以外の文字が含まれるリクエストはセキュリティリスクとみなされ、無効と判定されます。(例: Illegal Request のエラーが返る等)。

変更適用日

2018年2月11日(日本時間)

変更の理由

Salesforce は UTF-8 の文字コードを利用しています。これまでは、Salesforce への HTTP リクエストのチェックが不十分だったため、リクエストに含まれる「UTF-8 を適切に % エンコードした文字」以外の文字は「�」または UTF-8 として偶然一致した文字に置き換えられ、その HTTP リクエストがエラーになることは基本的にありませんでした。しかし、セキュリティ(インジェクション防止等)の観点、およびインターネット標準規格への準拠(RFCへの準拠および、ミドルウェアの独自変換「�」の排除)の観点から、厳密な判定が必要であると判断し、今回の変更実施に至りました。

*例えば URL パラメータ で Visualforce ページや、Lightning Experience 上でのレポートに文字を渡す場合には、 % エンコードした UTF-8 を利用しています。

無効と判定されるリクエストの例:
  • %uXXXX 形式でエンコード(JavaScript の非標準関数である escape() を利用した場合等)された文字を含む HTTP リクエスト
  • リクエストに含まれる % エンコードの文字をデコードした結果、UTF-8 ではない文字を含む HTTP リクエスト
  • リクエストをデコードする前の状態で、エンコードされていない ASCII 以外の文字が含まれている HTTP リクエスト(正しく % エンコードされた文字は、ASCII  文字のみで構成されます)

お客様にご対応いただく作業

上記の「変更の理由」にてご案内の通り、Salesforce への HTTP リクエストには UTF-8 のみが利用可能ですが、お客様環境において何らかの理由で「�」(Salesforce のミドルウェアによって解釈出来なかった文字の変換結果)が Salesforce に渡されるデータとして期待されている処理や、JavaScript 非標準の escape() 関数で生成された字が Salesforce に渡されている可能性があります。
 

なお、「UTF-8 を適切に % エンコードした文字」以外の文字を利用したURIエンコーディングについては、将来的には全て修正いただくことが必要ですが、今回の変更ではエラーが発生せず、現状の通り動作する処理がございます。​
変更適用日以降、エラーとなる処理/現状のまま動作する処理の具体例を、以下のナレッジ記事に用意いたしました。調査・対応にご利用ください。

ナレッジ記事:有効ではない Salesforce へのリクエストの具体例について​


確認が必要なお客様

お客様の設定や外部プログラムで生成または利用されている Salesforce への HTTP リクエストが、「UTF-8 を適切に % エンコードした文字」のみ利用していると判断されることが難しいお客様

確認手段

お客様環境の実装方法やデータに依存するため、お客様の設定や外部プログラムで生成または利用されている Salesforce への HTTP リクエストで、「変更の概要」にあるような、「UTF-8 を適切に % エンコードした文字」以外の文字が利用されていないかの個別の確認が必要となります。

Sandboxは既にこの変更が適用されておりますので、サンドボックス上で既存機能の動作に問題が出ていないか確認していただくくことが可能です。

主な利用箇所

  • Salesforce への HTTP リクエストを生成・利用している設定やプログラム(下記例の箇所も個別に実装の確認が必要です)
  • Salesforce 上の特定ページへ移動するカスタムボタンまたはカスタムリンクで、[内容のソース]が “OnClick JavaScript” となっている
  • Salesforce 上の特定ページへ移動するカスタムボタンまたはカスタムリンクで、[内容のソース]が “URL” となっていて、[リンクのエンコード]が "Unicode (UTF-8)” 以外となっている
  • Lightning Experience 上のレポートパラメータを動的・または静的に指定しているリンク
  • Salesforce 上の特定ページを呼びだす Visualforce または外部プログラム
  • 静的リソースやレコードに保存している Salesforce の特定ページへの URL

確認が不要な箇所

Salesforce 以外へアクセスするための URL を生成・利用する箇所

関連ヘルプおよびKB

一般情報(Salesforce 以外から提供されているもの)

ご不明な点がございましたら、[ヘルプ&トレーニング]より Salesforce サポートへお問い合わせください。
お客様の影響調査の参考情報として、問題が生じる可能性のあるリクエストURIをご提供することが可能です。

なお、以下のご相談については、Salesforce サポートでは承っておりません。お客様組織の管理者、開発者様、および外部プログラムを開発・保守されているシステムインテグレータ様へお問い合わせください。

 

  • リクエストURI以外での、影響が想定される箇所の探索作業
  • JavaScript に関する質問
  • お客様が利用されいている外部プログラムに関するご相談
  • お客様の実装手段に関するご相談
ナレッジ記事番号

000381922

 
読み込み中
Salesforce Help | Article