サイトの安全性向上策…WordPress…備忘録

2018年5月から運営しているこのブログ。
アクセス数も一日60PVと少ない個人的なブログであることから、ブログ自体の安全性は最低限の設定のみ施して運用していた。

しかし、アクセスするたびに「保護されていない通信」とアドレスバーに表示されることに不満を感じるようになり、少なくとも安心して閲覧できるサイトになるよう、さらなる安全性の向上策を施してみた。

サイト作成時から「SSL証明書」の導入と「https化」は行っていたが、それ以上の安全性は実施しておらず、今においても接続が保護されていないのは記事内やウィジット内の画像やリンクに「http」の記述があるものと思われる。

そこで、改めてサイト内のリンク・記述を見直すとともに「.htaccess」と「function.php」に警告を消すためのソースを追加した。


1.「.htsccess」へのリダイレクト記述追加

これまでもhttp://~へのアクセスはhttps://~へリダイレクトされるようになっているが、念のためドメインのトップレベルにある「.htaccss」に以下のソースを追加する。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}/$1 [R=301,L]

上記ソースを記述する場所は「.htaccess」内の「# BEGIN WordPress」から始まる行の前で、以下のような記述となる。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}/$1 [R=301,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

記述後上書き保存してFTPでアップロードする。


2.「function.php」に画像読込先URLの変換を記述する。

使用しているテーマ内の「function.php」に、ページを読み込む際の画像読み込み先URLを http://~ から https://~ に変換するソースを記述する。

以下のソースを記述する。

function http_to_https($the_content){
             $domain = $_SERVER[“HTTP_HOST"];

             $src_http_single = “src=\’http://".$domain;
             $src_http_double = “src=\"http://".$domain;
             $src_https_single = “src=\’https://".$domain;
             $src_https_double = “src=\"https://".$domain;

             $href_http_single = “href=\’http://".$domain;
             $href_http_double = “href=\"http://".$domain;
             $href_https_single = “href=\’https://".$domain;
             $href_https_double = “href=\"https://".$domain;

             $http = array($src_http_single, $src_http_double, $href_http_single, $href_http_double);
             $https = array($src_https_single, $src_https_double, $href_https_single, $href_https_double);
            $the_content = str_replace($http, $https, $the_content);

          return $the_content;
}
add_filter('the_content’, 'http_to_https’);

記述後FTPでアップロードする。


3.ヘッダー画面やウィジットに配置してある画像・ソースの確認

画像ファイルのソースに記述してある「imgタグ」の属性のURLが「http://~」となっている場合は「https://~」に変更する。


上記3つの対策を施したことにより、サイト情報には「この接続は保護されています」となった。

サイトの安全策についてはこれで終わりということがないが、今のところはこれで安全…かな?

参考サイト:
無料WordPressテーマ Principle https://wp-principle.net/
【コピペでOK】WordPressサイトを簡単にSSL化する方法