ワードプレスサイトの脆弱性に個別に対応(修正)する方法について解説いたします。


ワードプレスの個々の詳細な脆弱性にピンポイントで対応する

ワードプレスの脆弱性は一般的には、そのプラグイン等のバージョンと紐づいていますので、脆弱性パッチが当たっているバージョンにアップデートをすれば脆弱性をつぶすことが出来ます。

ワードプレスサイトではこの脆弱性の対応方法が一般的ですが、プラグインのアップデートが提供されていなかったり、外部の脆弱性検査企業様が検査した個別の脆弱性をつぶしてほしいというご依頼をいただくこともございます。

※脆弱性のあるプラグインやワードプレス本体のバージョンはセキュリティープラグインで検査可能です。

このような個別の脆弱性の発見例は下記のようなものです

URL http://URL/ にPOST値XXXを送信したところ画面のヘッダーに出力されたので不正なスクリプトをサイトのヘッダーに埋め込み可能な脆弱性があります

個別に発見された脆弱性に対処するには?

この場合、脆弱性の内容によって、個別の対処方法の設計が必要です。
この設計をもとにサーバー側のファイアウォール設定を強固にするか、ワードプレス側でできる対処方法としましてサーバーにあるHTACCESSファイルや、テーマのfunctions.php、プラグインを新たに作成してその脆弱性パッチのコードを記載して当てるという方法があります。

例えば、POST値(送信されたデータ)にJAVASCRIPTの実行文字列<scriptが含まれている場合にはじいてしまうコードの例は下記のようになります。

function secure_post() {
    $postdata = $_POST['送信キー'];
    if(! empty($postdata)){
        if(strpos(urldecoe($postdata),"<script") !== false){
            status_header(403);
            wp_die("不正な文字列が送信されました");
        }
    }
}
add_action('plugins_loaded','secure_post');

このコードでは最も早く呼ばれるplugins_loadedアクションを使用し任意のPOST値を取得調査し、<scriptというJAVASCRIPT文字列(CSRFクロスサイトリクエストフォージェリ攻撃等で使用されます)文字列が含まれる場合にwp_die関数でその場でサイトの描画を強制的に停止するコードになります。

このコードでちゃんとブロックできているかはPostmanという様々なHTTPリクエストを実行できるソフトウェアで確認します。

WPドクターではこのような個別の脆弱性に対する対処方法の設計やパッチの作成も可能ですのでお気軽にご依頼・ご相談お送りください。

WordPress ワードプレスの脆弱性に関するご依頼・ご相談はWPドクターまでお気軽にお送りください