推奨セキュリティヘッダーがインストー済ではありません対処

スポンサーリンク
この記事は約6分で読めます。

サイトヘルスステータスの警告

ワードプレスホーム画面で気になりながらも放置しておいたサイトヘルスチェックの警告情報に対応しました。

サイトヘルスステータスの表示

サイトヘルスステータスは、運用中ワードプレスのパフォーマンスやユーザー体験、セキュリティなどの改善点をチェックして表示するツールです。

サイトヘルスチェック警告

サイトヘルスチェック手順

ワードプレス管理画面ダッシュボード => ホーム => サイトヘルスステータスへと進み、サイトヘルス画面リンクをクリックすることでサイトヘルス状況を確認できます。

ヘルスチェック警告に対応

複数の警告がありましたが、今回は「推奨セキュリティヘッダーがインストー済ではありません」警告に対応しました。

推奨するセキュリティヘッダーを送信していません。

エラーを表示しているセキュリティヘッダーは、

Permissions-Policy

です。

画面にリンクがあるセキュリティヘッダーについての詳細ページの指示に従って対応していきます。

有料のSecurity with Really Simple SSL Proプラグインを使うと自動的に対応してくれるようですが、価格がSingle LicenseのPersonalで$39かかります。

リンクをたどるとWordPress で推奨されるセキュリティ ヘッダーを手動で追加するのページに手動での対応手順が記載されています。

手動での対応には、.htaccess ファイルの編集が必要になります。

セキュリティヘッダーとは

セキュリティヘッダーとは、ブラウザのHTTPアクセスに対してWEBサーバーがHTTPレスポンスヘッダー部分に記述するブラウザに対するセキュリティ指示と許可ポリシー情報のことです。

サイトのセキュリティヘッダー使用状況の確認

サイトのセキュリティヘッダー使用状況は、下記サイトにサイトURLを入力して確認できます。

Analyse your HTTP response headers

チェック状況
セキュリティヘッダーチェック状況 対処前

Permissions-Policy ヘッダーの追加

Permissions-Policy ヘッダーを使用することで、どの機能の動作を許可するかを Web サイト(アプリ)側で指定できます。

Permissions-Policyの構文は、以下の通りです。

Permissions-Policy:

は、allowlist に適用される機能ポリシーディレクティブです。
は、* ’none’  ‘self’ ‘src’ を空白で区切ったリストです。

記述方法の詳細は、Permissions-Policy仕様書を参考にしてください。

.htaccessに記述したPermissions-Policy

じゅんぺいブログの記載情報を参考にさせていただきました。

# Security Headers
Header always set Content-Security-Policy “upgrade-insecure-requests”
Header always set X-XSS-Protection “1; mode=block”
Header always set X-Content-Type-Options “nosniff”
Header always set Referrer-Policy: “no-referrer-when-downgrade”
Header always set Expect-CT “max-age=7776000, enforce”
Header always append X-Frame-Options SAMEORIGIN
Header always set Permissions-Policy “geolocation=(); midi=();notifications=();push=();sync-xhr=();accelerometer=(); gyroscope=(); magnetometer=(); payment=(); camera=(); microphone=();usb=(); xr=();speaker=(self);vibrate=();fullscreen=(self);”
Header always set Strict-Transport-Security: “max-age=31536000” env=HTTPS
# End Security Headers
 

設定後のサイトのセキュリティヘッダー使用状況の確認

セキュリティヘッダーチェック状況 対処後

推奨セキュリティヘッダーがインストー済ではありません警告が解消しない

Analyse your HTTP response headersツールでエラーはなくなりましたが、サイトのヘルスチェックでは「推奨セキュリティヘッダーがインストー済ではありません ・Permissions-Policy」の警告が解消しません。
現在調査継続中です。

その後の経緯

Crom拡張機能ネットワークタブで、レスポンスヘッダーにpermissions-policyが設定されていることを確認。

permissions-policy:は設定した内容が格納されているが、それでも警告が表示される。
accept-ranges: none
cache-control: no-cache, must-revalidate, max-age=0
content-encoding: gzip
content-length: 14222
content-security-policy: upgrade-insecure-requests
content-type: text/html; charset=UTF-8
date: Sat, 05 Nov 2022 17:58:26 GMT
expect-ct: max-age=7776000, enforce
expires: Wed, 11 Jan 1984 05:00:00 GMT
link: ; rel=”https://api.w.org/”
link: ; rel=”alternate”; type=”application/json”
link: ; rel=shortlink
permissions-policy: geolocation=(); midi=();notifications=();push=();sync-xhr=();accelerometer=(); gyroscope=(); magnetometer=(); payment=(); camera=(); microphone=();usb=(); xr=();speaker=(self);vibrate=();fullscreen=(self);
referrer-policy: no-referrer-when-downgrade
server: Apache
strict-transport-security: max-age=31536000
vary: Range,Accept-Encoding
x-cache: BYPASS
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-powered-by: PHP/7.4.30
x-xss-protection: 1; mode=block

プラグインの変更で解決

いままで使用していたReally Simple SSLプラグインを無効化し、SSL Insecure Content Fixerプラグインを使用で「推奨セキュリティヘッダーがインストー済ではありません」警告は解消しました。

error: Content is protected !!