先頃、お客様のWelcart(WordPressのECプラグイン)で、カート決済にZEUSの連携設定を試みたところ
「90100100 : 通信に失敗しました。」とアラートが出て、「カード情報または通信エラー」ということでした。
ところがFirefoxなどそのエラーが生じないものもあり、調べてみると、Google Chromeでは「Sync XHR がほぼ禁止している」ということで
Permissions-Policy: sync-xhr=() があるとZEUSなどトークンを使った決済サービスなどが通信失敗になるとのこと。
それはWordPressのセキュリティを高めるためにとネットの情報で拾い
htaccessに書いていた「HTTPセキュリティヘッダ」の記述にありました。
# Security Headers
Header always set Strict-Transport-Security: “max-age=31536000” env=HTTPS
Header always set Content-Security-Policy “upgrade-insecure-requests”
Header always set X-Content-Type-Options “nosniff”
Header always set X-XSS-Protection “1; mode=block
Header always set Expect-CT “max-age=7776000, enforce”
Header always set Referrer-Policy: “no-referrer-when-downgrade”
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);”
# End Security Headers
sync-xhr=() を削除するか sync-xhr=* に変更することで通信エラーはなくなります
Permissions-Policy: sync-xhr=() になっているHTTPセキュリティヘッダのサンプルはネットにたくさんあるので、サイバー攻撃に対するセキュリティ意識が高いことに越したことはないのですが、WelcartやECサービスの運用などには気をつける必要があります。
プラグイン「Headers Security Advanced & HSTS WP」をインストール&有効にすれば、自動でhtaccessにHTTPセキュリティヘッダを書いてくれますが、このプラグインの記述では sync-xhr=* になっているので気にせず安心して使えます。


