技術ネタ

サイトのソースからWordPressのバージョン情報を取り除く

技術ネタ
スポンサーリンク

どんな記事?

WordPressのセキュリティを向上させるために、バージョン情報などをウェブサイトから除去する方法をまとめました。

なぜ必要?

こちらの記事も併せて参照ください。

Wappalyzerというブラウザ拡張機能でとあるサイトを表示したときのキャプチャです。

サイト運営者ならゾッとするところもありますね。WordPressのバージョンなんかも一目瞭然です。万が一このバージョンに脆弱性がある場合、それを足がかりに侵入されてしまう可能性があります。WordPressは日々脆弱性の修正でバージョンアップが重ねられていますが、バージョンアップしていないこともソースから丸わかりになってしまうことになり、これでは侵入してくださいと言っているようなものです。

functions.phpに追記

そこでバージョンをソースに出力しないために、functions.phpに以下のコードを追記しましょう。

// WordPressのバージョン情報出力を抑制
remove_action('wp_head', 'wp_generator');

// 短縮リンク出力を抑制
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);

// 外部から編集するためのAPI出力を抑制
remove_action('wp_head', 'rsd_link');

// JSやCSSにパラメータとして付与されるバージョンを除去
function remove_src_ver($src) {
    if (strpos($src, 'ver=')) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('style_loader_src', 'remove_src_ver');
add_filter('script_loader_src', 'remove_src_ver');

// PHPのバージョンを出力しない
header_remove('X-Powered-By');

サーバによってはPHPのバージョンがヘッダに付加されていることもあるので、念のため除外しています。

php.iniに以下を記述することで除外することもできるので、両方設定しとくといいかもです。

expose_php = off

まとめ

WordPressにかぎらず、バージョンアップはまめにしましょう!

タイトルとURLをコピーしました