This site is under development.

Skip to content
All articles

Our articles are currently written in Japanese only. Your browser’s translation feature can help in the meantime.

直し方ガイド

診断で見つかった問題の直し方ガイド

診断レポートで見つかった問題を、どこで・どう直すかをまとめました。サーバー会社別の手順と、WordPress の手順への入口です。

・8 min read

診断レポートの「対処」に書かれている内容を、実際の操作に落とし込むためのガイドです。お使いのサーバー会社が下にある場合は、その会社の管理画面に合わせた手順をご覧ください。

お使いの環境ガイド
エックスサーバーエックスサーバーでの直し方
さくらのレンタルサーバさくらのレンタルサーバでの直し方
ロリポップ!レンタルサーバーロリポップ!での直し方
ConoHa WINGConoHa WING での直し方
WordPress(サーバー会社を問わず)WordPress の直し方

それ以外のサーバーをお使いの場合は、このページの手順を制作会社やサーバー会社にそのまま渡して、対応を依頼できます。依頼の進め方は「制作会社に修正を依頼するときのチェックリスト」にまとめています。

作業の前に: 設定ファイル(.htaccess)を書き換える前に、必ず元の内容を控えてください。書き間違えるとサイト全体が表示されなくなることがあり、元に戻せば復旧します。

通信の暗号化(HTTPS・証明書・HSTS)

対象になる検出事項:証明書の期限切れ・期限間近、http のまま表示される、HSTS がない、古い暗号方式が使える、など。

  1. 証明書を有効にする。 ほとんどのレンタルサーバーには無料の証明書(Let's Encrypt)があり、管理画面から有効にできます。自動更新になっているかも確認してください。
  2. http を https に転送する。 管理画面に「HTTPS に転送する」といった設定があればそれを使います。なければ、公開フォルダの .htaccess の先頭に次を追加します(Apache の場合)。
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  1. HSTS を設定する。 すべてのページが https で問題なく表示されることを確かめてから、次の1行を .htaccess に追加します。最初は短い期間(300 秒)で試し、問題がなければ1年(31536000 秒)に延ばします。
Header always set Strict-Transport-Security "max-age=31536000"
  1. 古い暗号方式(TLS 1.0 / 1.1) は、共用のレンタルサーバーでは利用者側で止められません。サーバー会社のサポートに、無効にできるか、新しいサーバーへ移れるかを問い合わせてください。

セキュリティヘッダー

対象になる検出事項:nosniff がない、他サイトの枠内に表示できる、リファラーの指定がない、Permissions-Policy がない、CSP がない、バージョンが見えている、など。

Apache のサーバーでは、公開フォルダの .htaccess に次を追加します。

<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
</IfModule>
  • CSP(読み込み元の制限) は、サイトが使っている外部サービス(アクセス解析、地図、動画、フォントなど)をすべて許可する必要があり、書き方を誤ると表示が崩れます。制作会社に依頼し、まず Content-Security-Policy-Report-Only で影響を確かめてから有効にするのが安全です。
  • サイトの中で地図や予約フォームなど、自社の別ページを枠内に表示している場合は SAMEORIGIN のままで動きます。他社のサイトに自社ページを埋め込ませている場合は、制作会社に相談してください。
  • バージョンの表示(X-Powered-By: PHP/8.x など)は、PHP の設定で expose_php = Off にすると消えます。管理画面に「php.ini 設定」があれば、そこで変更できます。Web サーバー自体のバージョン表示は、共用サーバーでは変更できないことがあります。
  • Cookie の Secure / HttpOnly は、サイトのプログラム側の設定です。WordPress は https で運用していれば自動で付きます。独自のプログラムの場合は制作会社に依頼してください。

PHP の更新

対象になる検出事項:PHP のサポートが終了している、最新版ではない、既知の脆弱性がある。

  1. 管理画面の「PHP のバージョン設定」で、サポート中の版(サーバー会社が「推奨」としている版)に切り替えます。
  2. 切り替えたら、サイトの表示、問い合わせフォーム、管理画面へのログインを確認します。
  3. 表示が崩れたりエラーが出たりしたら、元の版に戻して、制作会社に対応を依頼します。古いテーマやプラグイン、古いプログラムが原因のことがほとんどです。

WordPress をお使いの場合は、先に WordPress 本体・テーマ・プラグインを更新してから PHP を切り替えると、問題が起きにくくなります。

公開されてはいけないファイル

対象になる検出事項:.env・.git・バックアップ・データベースの書き出し・phpinfo.php などが外から見える、フォルダの中身が一覧で見える、など。

  1. まず削除する。 レポートの「根拠」にある場所のファイルを、ファイルマネージャーや FTP で公開フォルダから削除します。必要なファイルなら、公開フォルダの外に移します。
  2. 漏れた可能性のある情報を変更する。 .env や wp-config.php のバックアップ、データベースの書き出しが見えていた場合は、そこに書かれていたパスワードや API キーを変更してください。削除しただけでは、すでに見られた分は取り消せません。
  3. 再発を防ぐ。 .htaccess に次を追加すると、「.」で始まるファイルと .git などのフォルダへのアクセスを拒否し、フォルダの一覧表示を止められます。
<FilesMatch "^\.">
  Require all denied
</FilesMatch>
RedirectMatch 404 /\.(git|svn)(/|$)
Options -Indexes

Options の行は、サーバー会社によっては使えず、追加するとエラーになることがあります。その場合はその行だけ外し、一覧が見えているフォルダに空の index.html を置いてください。

なりすましメール対策(SPF・DKIM・DMARC)

対象になる検出事項:SPF がない・弱い、DKIM が見つからない、DMARC がない・「何もしない」のまま、など。

設定する場所は、ドメインの DNS を管理している会社(サーバー会社、またはドメインを取得した会社)の管理画面です。

  1. SPF: メールを送るサービスをすべて含めた TXT レコードを1つだけ登録します。2つ登録すると無効になります。例:v=spf1 include:_spf.google.com ~all(Google Workspace の場合)
  2. DKIM: メールサービスの管理画面で DKIM を有効にし、表示されたレコードを DNS に登録します。
  3. DMARC: _dmarc という名前の TXT レコードを登録します。最初は様子を見る設定から始めます。
v=DMARC1; p=none; rua=mailto:[email protected]

届いたレポートで、自社の正しいメールが SPF か DKIM に合格していることを確かめてから、p=quarantine(迷惑メールに入れる)、p=reject(受け取らせない)へと段階的に強めます。仕組みの説明は「メールのなりすまし対策」をご覧ください。

メールを送らないドメインには、v=spf1 -all と v=DMARC1; p=reject を登録しておくと、なりすましに使われにくくなります。

DNS の設定(CAA・DNSSEC)

対象になる検出事項:証明書を発行できる会社が制限されていない(CAA 未設定)、DNSSEC が有効になっていない。

  • CAA: 証明書の発行を許可する会社を DNS に登録します。無料の証明書(Let's Encrypt)だけを使っている場合は、次の CAA レコードを追加します。別の会社の証明書も使っている場合は、その会社も追加しないと更新に失敗するので、先にサーバー会社に確認してください。
0 issue "letsencrypt.org"
  • DNSSEC: ドメインを取得した会社(レジストラ)と、DNS を管理している会社の両方が対応している必要があります。対応状況と手順を、ドメインの管理会社に問い合わせてください。どちらも優先度は低めです。ほかの問題を先に直してかまいません。

直したあとに

設定を変えたら、もう一度診断して、問題が消えたことを確かめてください。ご不明な点や、自社での対応が難しい場合は、お問い合わせからご相談ください。