無料ウェブサイトセキュリティチェッカー
サイトが訪問者を守るための基本をチェックします:HTTPS を使っているか、SSL/TLS 証明書が有効で期限切れ間近でないか、サーバーがどのセキュリティヘッダーを送信しているか。これは設定の簡易チェックであり、ペネトレーションテストではありません。
このツールのチェック内容
HTTPS
リダイレクト後に、ページが最終的に https:// のアドレスになっているか。
SSL/TLS 証明書
証明書が信頼されていてドメインと一致しているか、使われている TLS のバージョン、発行者、有効期限までの日数。
HSTS
ブラウザに、サイトでは常に HTTPS を使うよう指示する Strict-Transport-Security ヘッダー。
Content-Security-Policy
スクリプトやその他のリソースを読み込める場所を制限するヘッダーで、クロスサイトスクリプティング対策に役立ちます。
クリックジャッキング対策
X-Frame-Options、または CSP の frame-ancestors ルール。他のサイトがあなたのページを見えない形で埋め込むのを防ぎます。
その他の保護用ヘッダー
X-Content-Type-Options、Referrer-Policy、Permissions-Policy。
バージョン情報の露出
ソフトウェアのバージョン番号を明かしてしまう Server や X-Powered-By ヘッダー。
チェックの仕組み
ページに通常のリクエストを 1 回送り、リダイレクトをたどって、レスポンスヘッダーを読み取ります。その後、サーバーへ別途 TLS 接続を開き、標準的な信頼済み認証局のリストに照らして証明書を検証します。
スコアは 100 点から始まります。HTTPS を使っていないと 40 点、HSTS ヘッダーがないと 15 点、CSP がないと 12 点、クリックジャッキング対策がないと 8 点、X-Content-Type-Options ヘッダーがないと 6 点、Referrer-Policy・Permissions-Policy がないと各 4 点、バージョン番号の露出は 3 点の減点です。証明書が無効または期限切れの場合は 40 点、TLS 接続の失敗は 30 点、有効期限まで 14 日以内または 30 日以内の証明書は 10 点または 5 点の減点です。
このチェックはヘッダーが存在するかを確認するもので、値の強度は確認しません。非常に緩い CSP でも「あり」とみなされます。脆弱性、古いソフトウェア、マルウェア、弱いパスワード、Cookie の設定は調べず、侵入を試みることも一切ありません。
よく見つかる問題
HSTS がない
すべてを HTTPS にリダイレクトしているサイトでも、よくあることです。
Content-Security-Policy がない
設定に多少の手間がかかるため、最も多く欠けているヘッダーです。
クリックジャッキング対策がない
X-Frame-Options も frame-ancestors ルールもない状態。
期限切れ間近の証明書
たいていは、サーバーや DNS の変更後に自動更新が止まってしまったことが原因です。
サーバーのバージョンが見えている
「Server: Apache/2.4.41」や「X-Powered-By: PHP/7.4」のようなヘッダーは、攻撃者に狙いどころを教えてしまいます。
まだ HTTP のまま
HTTPS がまったくない、または HTTPS はあるが http:// のアドレスからリダイレクトしていない。
直し方
サイトを配信している場所でヘッダーを設定する
ヘッダーは、ウェブサーバー(Nginx の add_header、Apache の Header set)、CDN(Cloudflare など)、またはホスティングの設定やヘッダーファイルで設定します。
HTTPS がすべてで機能したら HSTS を有効にする
まずは Strict-Transport-Security: max-age=31536000 から始めましょう。includeSubDomains は、すべてのサブドメインが HTTPS に対応している場合にだけ追加します。
CSP は段階的に導入する
まず Content-Security-Policy-Report-Only で何がブロックされるかを確認し、サイトに必要なものがすべて許可されたポリシーになったら、強制モードに切り替えましょう。
シンプルなヘッダーを追加する
X-Content-Type-Options: nosniff、Referrer-Policy: strict-origin-when-cross-origin、X-Frame-Options: DENY(または SAMEORIGIN)は、何かを壊すことはほとんどありません。
証明書の更新を自動化する
ホスティングのマネージド証明書か、自動更新付きの Let's Encrypt を使い、サーバーの変更後も更新処理が動いていることを確認しましょう。
バージョン番号を隠す
バージョン情報の出力をオフにしましょう(例:Nginx では server_tokens off、PHP では expose_php = Off)。
よくある質問
これはペネトレーションテストや脆弱性スキャンですか?
いいえ。HTTPS の設定、証明書、セキュリティヘッダーといった、どのブラウザも受け取る目に見える設定をチェックします。脆弱性を探したり悪用したりはしません。それが必要な場合は、資格のあるセキュリティテスターに依頼してください。
サイトがハッキングされたかどうかわかりますか?
いいえ。マルウェア、改ざんされたページ、乗っ取られたアカウントはスキャンしません。スコアが良いということは、通信のセキュリティの基本が設定されているという意味にすぎません。
ヘッダーの良し悪しも判定しますか?
主に各ヘッダーが存在するかを確認します。CSP の frame-ancestors ルールはクリックジャッキング対策として認識しますが、ポリシーの強度は評価しません。
HTTP のサイトで HSTS がチェックされないのはなぜですか?
HSTS は HTTPS 経由でのみ効果があります。サイトが HTTPS でない場合はそれがより大きな問題なので、代わりにそちらを報告します。
セキュリティヘッダーを追加するとサイトが壊れることはありますか?
ほとんどのヘッダーは安全に追加できます。Content-Security-Policy はサイトが必要とするスクリプト、スタイル、埋め込みをブロックすることがあるため、まず report-only モードでテストしてください。
役立つガイド
関連する無料ツール
修正を任せたいですか?
これらのチェックもガイドも無料です。変更作業を人に任せたい場合は、私たちのチームが有料でサポートします。