HTTP to HTTPS Insecure Transition in Form Post

「HTTP to HTTPS Insecure Transition in Form Post」というアラートは、HTTPページ上のフォームがHTTPSのURLにデータを送信する際に発生します。これにより、送信データが盗聴されるリスクがあります。これを解消するためには、以下の手段を講じることが重要です。

1. サイト全体をHTTPSに移行する

SSL/TLS証明書の導入

  • SSL/TLS証明書を取得: 信頼できる証明機関からSSL/TLS証明書を取得し、ウェブサーバーにインストールします。Let's Encryptなどの無料証明書も利用可能です。

サーバー設定の変更

  • HTTPからHTTPSへのリダイレクト: ウェブサーバーの設定で、すべてのHTTPトラフィックをHTTPSにリダイレクトするように設定します。
# Apacheの例
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Nginxの例
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

2. フォームの送信先をHTTPSに変更する

フォームのアクションURLの修正

  • フォームの送信先URLを修正: フォームのaction属性をHTTPS URLに変更します。
<!-- 修正前 -->
<form action="http://example.com/submit" method="post">

<!-- 修正後 -->
<form action="https://example.com/submit" method="post">

3. コンテンツセキュリティポリシー (CSP) の設定

CSPヘッダーの追加

  • CSPヘッダーの設定: コンテンツセキュリティポリシーを設定し、すべてのフォーム送信がHTTPSで行われるようにします。
Content-Security-Policy: default-src https:; form-action https:;

4. WordPressの設定とプラグインの利用

WordPressアドレス (URL) とサイトアドレス (URL) の更新

  • 設定の変更: WordPressの管理画面から「設定」→「一般」で、WordPressアドレス (URL) とサイトアドレス (URL) をHTTPSに変更します。

SSLプラグインの導入

  • プラグインの利用: 「Really Simple SSL」などのプラグインを利用して、WordPressサイト全体をHTTPSに移行します。このプラグインは、すべてのHTTPリクエストをHTTPSにリダイレクトし、サイトURLをHTTPSに更新します。

5. JavaScriptによる動的フォームの処理

JavaScriptの確認と修正

  • 動的フォームの処理: JavaScriptで動的に生成されるフォームがHTTP URLにデータを送信していないか確認し、必要に応じてHTTPS URLに修正します。
// 修正前
document.getElementById('myForm').action = 'http://example.com/submit';

// 修正後
document.getElementById('myForm').action = 'https://example.com/submit';

まとめ

「HTTP to HTTPS Insecure Transition in Form Post」アラートを解消するためには、以下の手段を講じる必要があります:

  1. サイト全体をHTTPSに移行し、SSL/TLS証明書を導入する。
  2. フォームの送信先URLをHTTPSに変更する。
  3. コンテンツセキュリティポリシーを設定し、HTTPSのみを許可する。
  4. WordPressの設定をHTTPSに更新し、SSLプラグインを利用する。
  5. JavaScriptで動的に生成されるフォームの送信先URLをHTTPSに修正する。

これらの対策を講じることで、フォームデータの送信が常に安全に行われるようになり、情報漏洩のリスクを低減することができます。