SharePoint 検索結果 Web パーツのプロパティで読み込み動作が使用できなくなりました

元の KB 番号: 4052414

概要

SharePoint Server で検索結果 Web パーツのプロパティを設定する場合は、読み込み動作を同期または非同期に設定することで、返される検索結果が Web ページに表示されるタイミングを指定できます。 同期読み込みを使用すると、サイトはクロスサイト検索攻撃に対して脆弱になります。 非同期読み込みを使用して、Web ページの読み込み後にブラウザーからクエリを発行することを強くお勧めします。

SharePoint Enterprise Server 2016 のセキュリティ更新プログラムの説明: 2018 年 12 月 11 日SharePoint Enterprise Server 2013 のセキュリティ更新プログラムの説明: 2018 年 12 月 11 日 および SharePoint Foundation 2010 のセキュリティ更新プログラムの説明: 2018 年 12 月 11 日は、 次の変更によりこの脆弱性を修正します。

  • すべての既存の検索結果 Web パーツは、非同期読み込みを使用するように自動的に切り替わります。
  • 新しく作成されたすべての検索結果 Web パーツでは、非同期読み込みが使用されます。
  • 読み込み動作は、検索結果 Web パーツのプロパティ ユーザー インターフェイス (UI) のオプションではなくなりました。

更新プログラムをインストールした後でも、読み込み動作オプションを個々のサイトの UI に戻すことができます。ここで、読み込み動作の既定の設定は非同期です。 これを行う前に、この脆弱性が環境内で悪用される可能性があるかどうかを慎重に検討し、この脆弱性に関するガイダンスを Web パーツの所有者に提供することを強くお勧めします。

読み込み動作オプションを追加する

SharePoint サイトの検索結果 Web パーツの UI に読み込み動作オプションを追加するには、次の手順に従います。

  1. ロールを持つユーザー アカウントを使用してログオンします SharePoint_Shell_Access

  2. SharePoint ファーム内のいずれかのサーバーで、SharePoint 管理シェルを起動します。

  3. Windows PowerShell コマンド プロンプトから、次のコマンドを実行します。

    $sites = Get-SPSite
    $s = $sites[n]
    $s.RootWeb.AllowUnsafeUpdates = $true
    $s.RootWeb.AllProperties.Add("SyncSearchAllowed", 1)
    $s.RootWeb.Update()
    $s.RootWeb.AllowUnsafeUpdates = $false
    

    注:

    sites[n] は、指定したサイトのプレースホルダーです。

読み込み動作を設定する

SharePoint Server 2013 または 2016 で読み込み動作を設定するには、「 SharePoint Server で検索結果 Web パーツのプロパティを構成する」を参照してください。 SharePoint Server 2010 Search Core Results Web パーツで読み込み動作を設定するには、次の手順に従います。

  1. この手順を実行するユーザー アカウントが編集者グループのメンバーであることを確認します。

  2. 検索結果ページで、[サイトの操作] メニューをクリックし、[ページの編集] をクリックします。 検索結果ページが編集モードで開きます。

  3. [検索コアの結果 Web パーツ] で矢印をクリックし、メニューから [ Web パーツの編集 ] を選択します。

  4. [ AJAX オプション] の [オン] オプションを選択して、Web パーツから返された検索結果が Web ページに表示されるタイミングを決定します。

    既定では、[ 非同期読み込みを使用 する] ボックスがオンになっており、完全なページを受信すると、エンド ユーザーのブラウザーからクエリが発行されます。 [ 非同期読み込みを使用 する] ボックスをオフにすると、サーバーでクエリが発行され、検索結果が SharePoint から返されるページ応答に含まれます。

読み込み動作オプションを削除する

SharePoint サイトの検索結果 Web パーツの UI から読み込み動作オプションを削除するには、次の手順に従います。

  1. ロールを持つユーザー アカウントを使用してログオンします SharePoint_Shell_Access

  2. SharePoint ファーム内のいずれかのサーバーで、SharePoint 管理シェルを起動します。

  3. Windows PowerShell コマンド プロンプトから、次のコマンドを実行します。

    $sites = Get-SPSite
    $s = $sites[n]
    $s.RootWeb.AllowUnsafeUpdates = $true
    $s.RootWeb.AllProperties.Remove("SyncSearchAllowed")
    $s.RootWeb.Update()
    $s.RootWeb.AllowUnsafeUpdates = $false
    

    注:

    sites[n] は、指定したサイトのプレースホルダーです。