東日本橋の制作・開発会社 プレスマンのスタッフブログ

PRESSMAN*Tech

Tech & Tips WordPress

【WordPress】公式プラグイン申請時に指摘された内容まとめPart2

投稿日:

前回に引き続き、WordPressのプラグイン申請で指摘される内容の対策と、実際のメール内容を日本語訳とともに紹介していきます。前回の記事はこちらから↓

申請前に気をつけるポイント

レビューで極力指摘されないようにするには、以下のポイントに注意しましょう。
  • POST呼び出しの際には、nonceチェックと一緒にユーザーの権限もチェックする
  • ライブラリなどの外部ファイルはCDNを使わずに、プラグインに含める

POST呼び出しの際には、nonceチェックと一緒にユーザーの権限もチェックする

POSTのようなユーザーからの入力値を受け取って処理を行う際には、CSRF攻撃を受ける可能性があります。そのような場合には、nonceを使用してその値をチェックすることで、正当なリクエストかどうかを判断してあげる必要があります。 管理画面からnonceをチェックするためには、check_admin_refererというWordPressの関数を使います。 そのほかにもこちらのページに、nonceの作り方や管理画面以外のところからnonceを検証する方法なども記載されているので、参考にしてみてください。 また、nonceのチェックだけでは不十分なので、nonceをチェックするのと一緒に、current_user_can を使用してリクエストを送ってきたユーザーが、そのリクエストに必要な権限を持っているかも確認するようにしましょう。

ライブラリなどの外部ファイルはCDNを使わずに、プラグインに含める

プラグイン本体に含まれていないライブラリをCDNなど外部から読み込んでいる場合、CDNが使えなくなった時に不具合が生じてしまうなど、外部に依存するプラグインを作ることとなってしまいます。 これを防ぐためには、ライブラリなどのファイル群をプラグイン本体に含めてあげる必要があります。また、jQueryなどWordPressコアに含まれているライブラリなどに関しては、わざわざプラグインに追加せずにコアのものを使うことが推奨されているので、そちらを使うようにしましょう。

メール本文 & 日本語訳

Not using Nonces and/or checking permissions

メール本文

Please add a nonce to your POST calls to prevent unauthorized access.

Keep in mind, check_admin_referer alone is NOT bulletproof security. Do not rely on nonces for authorization purposes. Use current_user_can() in order to prevent users without the right permissions from accessing things.

https://developer.wordpress.org/plugins/security/nonces/

function option needs a nonce

日本語訳

不正アクセスを防ぐために、POSTコールにnonceを追加してください。 check_admin_referer だけでは、心配のないセキュリティにはならないことを覚えておいてください。認可の目的で nonce に頼らないでください。current_user_can() を使用して、正しい権限を持たないユーザがアクセスできないようにしてください。 https://developer.wordpress.org/plugins/security/nonces/ 関数オプションには nonce が必要です。

Calling files remotely

メール本文

Offloading images, js, css, and other scripts to your servers or any remote service (like Google, MaxCDN, jQuery.com etc) is disallowed.


If the file you're calling isn't a part of WordPress Core, then you should include it -locally- in your plugin, not remotely.


If the file IS included in WordPress core, please call that instead.

Please remove external dependencies from your plugin and, if possible, include all files within the plugin (that is not called remotely).

日本語訳

画像、js、css、その他のスクリプトをサーバーやリモートサービス(Google、MaxCDN、jQuery.com など)にオフロードすることは禁止されています。 呼び出しているファイルが WordPress Core の一部ではない場合は、リモートではなくローカルでプラグインに含めるべきです。 もしそのファイルが WordPressコアに含まれているのであれば、そのファイルを代わりに呼び出してください。 プラグインから外部の依存関係を削除し、可能であればプラグイン内にすべての必要なファイルを含めてください(リモートで呼び出されないようにしてください)。

おわりに

前回から今回の2回に渡って、WordPressプラグインを申請する際に注意すべきポイントを5点紹介しました。 紹介したポイントをあらかじめ守ってプラグイン申請をすることで、はるかにスムーズに公開まで辿りつけると思うので、これらのポイントをぜひ意識して開発を進めてみてください。
この記事をシェアする:

-Tech & Tips, WordPress

Copyright© PRESSMAN*Tech , 2020 All Rights Reserved Powered by STINGER.