SHU BLOG

BLOG NEWS

TITLE

【WordPress】MW WP Formでzipファイルを禁止する方法

SHU[シュウ]

1991年生まれ九州の宮崎県育ち
高校卒業後、愛知県で自動車関係の
お仕事に5年間勤め、WEB業界に
転職致しました。
趣味:サッカー観戦、ゲーム、映画、漫画
基本インドアです!

サーバーとドメインの同時取得で.jpが無料

シュウ
シュウ
今回はMW WP Formでzipファイルを禁止する方法【jpg・png・pdfのみ許可】
の解説になります!

こんな方に読んでほしい

  • MW WP Formでアップロードできるファイル形式を制限したい方
  • zipファイルをアップロードできないようにしたい方
  • WordPressのお問い合わせフォームのセキュリティを向上させたい方

MW WP Formとは

MW WP Formとは

MW WP Form」 とは、WordPressのお問い合わせプラグインになります。
「MW WP Form」は、とても使いやすい反面、少し知識が必要になってきます。
ですが、このプラグイン一つで全てのことが設定できるので、しっかり覚えておきましょう。
こちらの方で詳しい設定については解説しております。

MW WP Formの設定について解説

プラグイン一つで全てのことが設定できるので、覚えておきましょう。

MW WP Formではファイル形式を制限した方が良い理由

MW WP Formではファイル形式を制限した方が良い理由

MW WP Formでは、ファイルアップロード機能を簡単に実装できます。
しかし、何も設定をしていない場合は、想定していないファイルがアップロードされる可能性があります。
セキュリティや運用面を考えると、アップロードできる拡張子を制限することがおすすめです。

accept属性だけではzipファイルを完全に防げない

HTMLのaccept属性を設定すると、ファイル選択画面で指定した形式のみ表示できます。
しかし、ブラウザによっては制限を回避できる場合があるため、サーバー側でもチェックを行う必要があります。

accept属性の設定例

ファイル選択時に、画像やPDFのみ選択できるようにするには、accept属性を設定します。
書き方は以下のようになります。

[mwform_file name="your-file" accept=".jpg,.jpeg,.png,.gif,.pdf"]

上記の設定を行うことで、ファイル選択画面では以下のファイルのみ選択しやすくなります。
「jpg、jpeg、png、gif、pdf」ただし、accept属性はあくまでもブラウザ側の制限です。
ブラウザによっては回避できる場合があるため、これだけでは完全な対策にはなりません。

そのため、次に紹介するfunctions.phpでのバリデーションも合わせて設定することをおすすめします。

accept属性とfunctions.phpは両方設定するのがおすすめ

accept属性だけでは完全な対策にはなりません。
一方で、functions.phpだけではユーザーが選択時に不要なファイルを見えてしまいます。
そのため、ユーザーの利便性とセキュリティの両方を考えると、accept属性とサーバー側のバリデーションを組み合わせることがおすすめです。

functions.phpに追加するコード

※「〇〇」の部分は、ご利用のMW WP FormのフォームIDに変更してください。
書き方は以下のようになります。

function my_mwform_file_validation( $Validation, $data ) {
    if ( ! empty( $_FILES['your-file']['name'] ) ) {
        $file = $_FILES['your-file']['name'];
        $ext  = strtolower( pathinfo( $file, PATHINFO_EXTENSION ) );
        $allow = array( 'jpg', 'jpeg', 'png', 'gif', 'pdf' );
        if ( ! in_array( $ext, $allow ) ) {
            $Validation->set_rule(
                'your-file',
                'noEmpty',
                array(
                    'message' => '添付可能なファイルは jpg、jpeg、png、gif、pdf のみです。'
                )
            );
        }
    }
    return $Validation;
}
add_filter( 'mwform_validation_mw-wp-form-〇〇', 'my_mwform_file_validation', 10, 2 );

※functions.phpに記述後には、一度、テスト確認を行なってください。

まとめ

今回はこれで以上です。
MW WP Formでは、accept属性だけでなくfunctions.phpで拡張子をチェックすることで、より安全なファイルアップロード機能を実装できます。
特にお問い合わせフォームでは、不正なファイルのアップロードを防ぐためにも、サーバー側でのバリデーションを設定しておくことが重要です。
今回紹介した方法を活用し、jpg・jpeg・png・gif・pdfのみ許可する安全なフォームを構築してみてください。

POINT
  • WordPressMW WP Form zipファイルを禁止する方法について解説しました。
  • MW WP Formの公式サイトはコチラから。
  • accept属性を設定して、選択できるファイル形式を制限します。
  • functions.phpでサーバー側のバリデーションを設定します。
  • 許可する拡張子(jpg・jpeg・png・gif・pdf)を指定します。
  • zipファイルなど不要な拡張子はアップロードできないようにします。
  • フォームIDが正しく設定されていることを確認します。
  • 実装後は、許可・禁止するファイルで動作確認を行います。
  • プラグインのインストールから設定の方法までの流れはコチラから。
スポンサーリンク

SHU

1991年生まれ九州の宮崎県育ち高校卒業後、愛知県で自動車関係のお仕事に5年間勤め、WEB業界に転職致しました。
趣味:サッカー観戦、ゲーム、映画、漫画基本インドアです!笑
つくる、しあわせをテーマとして主にWEBに関する様々な情報を発信しています。

オススメ記事

月別アーカイブ

Others Posts記事

NEW