My WP Customize Admin/Frontend のアップデートを行いました。 最新バージョンは 1.25.0 になります。 🙂
更新内容の詳細は公式サイト [更新履歴] My WP Customize Admin/Frontend 1.25.0 よりご確認ください。
My WP Customize Admin/Frontend のアップデートを行いました。 最新バージョンは 1.25.0 になります。 🙂
更新内容の詳細は公式サイト [更新履歴] My WP Customize Admin/Frontend 1.25.0 よりご確認ください。
WordPress プラグイン「WP Admin UI Customize」 に脆弱性があるよ~とご連絡いただき、久しぶりにWP Admin UI Customize (1.5.14) をアップデートしました。
今回はセキュリティアップデート(XSS対策)となり、WP Admin UI Customize 1.5.14より前のバージョンすべて影響を受けますので、プラグインをアップデートすることをおすすめします。 🙂
WP Admin UI Customize を更新する予定は特になかったのですが、前回 WP Admin UI Customize 1.5.13 の脆弱性のご連絡に続き、今回も脆弱性の報告をいただいたので、その修正のために約2年ぶりに更新しました。
脆弱性の内容としては、管理画面のカスタマイズのなかで一部の項目でJavascriptが実行できてしまう可能性があり、これを修正しています。 🙂
ちなみに今回は、JPCERT/CCさんより脆弱性のご連絡を受け、JVNにアドバイザリ「JVN#87182660」が公開されています。
普段私は脆弱性の最新情報をJVNで見るだけで、JVNはどういう仕組みでIPAがどういう仕組みとかほとんど意識していなかったのですが、今回はおそらくJVNに掲載されるまでの事が必要という事なので、ちょっと仕組みが分からないと進める事も難しいな~と思い、色々参考にしながら進めました。
何をどうすればいいのか、どういう関係図で、何をどこに連絡したらいいのか、さっぱり分からない状態からのスタートでしたが、JPCERT/CCさんのご説明を受けつつ、何とかなったっぽいです。 😳
もし私と同じようにJPCERT/CCさんから脆弱性のご連絡を受けて、何をどういう風に進めたらいいんだろうという人がいれば、「JPCERT/CC – 脆弱性情報ハンドリングとは?」の「調整機関のポジションと調整プロセス」という、脆弱性の発見からJVNに公開されるまでのおおまかな流れ図があるので、それを参考にすると進めやすいと思います。
脆弱性発見のご連絡をしていただいた佐藤芽生様、脆弱性をご連絡していただきありがとうございました。
JPCERT/CCのご担当者様、JVNへの公開までご協力いただきありがとうございました。
My WP Addon Advanced Custom Fields のアップデートを行いました。 最新バージョンは 1.3.0 になります。 🙂
今回はマイナー更新となります。後方互換はおそらく大丈夫だと思いますが、もしバグがあればご連絡ください。
1.3.0未満のバージョンでは、とりあえずデバッグとして機能するアドオンという使い方を想定して開発しました。
そのため、投稿一覧に ACF で設定したフィールドを表示できるようになっていますが、デバッグ的な機能なので、どのような値が入っているのか、ぐらいな表示方法でした。
値の確認はできますが、システム等があまり分からない人向け、本番利用には向いていない、など、若干分かりづらい表示方法でした。
簡単に言うと、これを分かりやすい表示方法に変更しました。 😉
もう少し具体的に説明すると、例えば以下スクリーンショットのように「テキスト」「ナンバー」「カラーコード」の3つのフィールドを ACF で設定していたとします。
このフィールドに対し、投稿で以下スクリーンショットのように、
と設定したとします。
投稿一覧にこの内容が表示されるよう、My WP Customize の投稿一覧カラムに ACF のフィールドのカラムを追加して、確認してみると…
このように、テキストは特に違和感ないですが、数字の部分が「5」だけ(”個2がない)、カラーピッカーで選択した色については「rgba(221,112…)」と、ACF で設定された値のまんまの表示になっていました。
いままで当たり前のように、ACF で設定したフィールドのカラムを手動で追加していたのですが、めんどくさい使いづらい。。。 😆
それを、今回の My WP Add-on Advanced Custom Fields バージョン 1.3.0 から、以下スクリーンショットのようにフィールドの値の前や後に表示したいテキストの表示(今回だと”個”)や、カラーコードは視覚的に見やすい方法に、など、見やすさを重視した表示変更を行いました。(ACF でフィールド追加して、投稿一覧にそのフィールドを表示するカラムの追加、なんだかんだで手間かかりますよね 🙄 )
My WP Customize バージョン 1.24.0 より、投稿一覧をより細かく検索できるカスタム検索フィルターを設置できるようにしたのですが、今回の My WP Add-on Advanced Custom Fields バージョン 1.3.0 を一緒に使う事により、カスタム検索フィルターに ACF で設定したフィールドで検索できるよう、検索拡張の機能を追加しました。
上の「投稿一覧の表示方法の変更」の説明で「サンプルテキスト」「サンプルナンバー」「サンプルカラー」の3つのフィールドを ACF で設定しましたが、それらのフィールドの検索項目が、ノーコードで自動で My WP Customize の検索フィルターに追加されるので、管理画面の投稿一覧での検索がかなり使いやすくなるんじゃないかと思います。 😀
試しに、「サンプルテキスト」というフィールドの項目に「ここに」と、すべての値ではなく一部の値だけで検索した場合、以下のように LIKE の検索結果になります。
いやー、疲れた! 😳
My WP Customize Admin/Frontend のアップデートを行いました。 最新バージョンは 1.24.0 になります。 🙂
一覧系の画面を主に更新しました。(実は、もう1機能追加したかったのですが、気力と体力と脳が疲れてきたので次回に延期しました 😳 )
My WP Customize Admin/Frontend 1.24.0 未満では非推奨カラムは1つも無かったのですが、1.24.0 から非推奨カラムを追加しました。今後の更新により、非推奨機能は削除していくつもりなので、なるべくお早めに非推奨カラムを使わないような設定をお願いします。 😛
非推奨カラムを追加した理由ですが、とても簡単に説明すると「あまり良くなかった方法でカスタマイズしていた為」です。 😐
詳細な説明を以下に記載しますので、興味のある方は良かったらどうぞ。 😉
一覧系のカラムのカスタマイズで、例えば「投稿のID」をタイトルカラムの前に追加して表示させたい場合、
上記スクリーンショットのような感じで、My WP Customize Admin/Frontend で予め用意されている「id」というカラムを追加すれば、投稿一覧のタイトルの前に該当の投稿 ID が表示される仕組みでした。
この「id」というカラムなどが「あまり良くなかった方法」になるため、一部のカラムの利用を My WP Customize Admin/Frontend 1.24.0 から非推奨にしました。
(非推奨としているだけなので、動作自体はします)
「あまり良くなかった方法」についてですが、もう少し説明にお付き合いお願いします。。。 😥
現在最新版のWP 6.6では(古いバージョンでも一緒だと思いますが)、カラムを追加した際、該当カラムの内容(今回の場合だと投稿ID)を表示する為に、WordPress のフック(manage_posts_custom_column)を用いて表示させる方法でカスタマイズしているのですが、このフックがフィルターではなくアクション(do_action)なので、同じカラム名へのフックが複数ある場合、同じ内容がそのフックの数の分だけ表示されてしまう(重複)、という現象がありました。
上のスクリーンショットで投稿のIDが「11」と表示されていますが、本当の投稿IDは「1」です。重複して2回出力されてしまった状態のため、「1」と「1」が隙間なく表示されているため「11」に見える状態です。
じゃあ、どういう時にこうなるのかというと、
と、プラグインやテーマのカスタマイズで、カラムの内容出力が重複するため、Aというプラグインで投稿ID「1」を表示、Bというプラグインで投稿ID「1」を表示、2つ合わせて「11」という現象になります。
(「タイトル」「日付」などのヘッダーのカラムの追加は、アクションではなくフィルターなので、同じカラムが存在すれば上書き、等の処理になると思いますが、各投稿の行のコンテンツカラムについては、フィルターではなくアクションフックのため、フックされている数の分だけ実行されます)
My WP Customize Admin/Frontend では、この現象を何とかする為に「カラムの内容を自動出力」という機能を用いて、もし他のプラグインやテーマ等が同じカラム名でカラムの内容出力を行っていれば、My WP Customize Admin/Frontend ではカラムの内容出力をしない、と、WordPress をカスタマイズする方自身が選択できるようにしていました。
していましたが。。。すごく。。。。分かりづらい。(自分でも思うのですが) 🙄
そして、1.24.0 からは別の方法で解決できたと思われるので非推奨にしました。
新しい解決方法の考え方としては、
と、どちらも投稿のIDを表示、と、やっている事はほぼ同じですが、他のプラグインやテーマ等が行っているカラムのカスタマイズ(カラム名)が重複することが原因だったため、重複しないようなカラム名にする。という方法です。
今までの解決法は、重複は避けられない、という前提で、My WP Customize Admin/Frontend でカラムの内容を表示をする or しないを選択できるようにしていたのですが、そもそも重複を避ける工夫を行いました。
そのため、重複しそうな単純なカラム名はすべて、非推奨としました。(非推奨はそのうち削除すると思います)
WordPressの管理画面の検索、だいぶ以前からずっと使いづらいなぁ~と思っていました。
デフォルトで「日付」と「カテゴリ一覧」の2つと、言葉の入力で「投稿を検索」の計3つ。(投稿を検索って、タイトルだけの検索だっけ??ってなりますよね。 🙄 ん?ならない? )
それをもっと拡張しようと思ったら、「restrict_manage_posts」にフックをかけて、日付やカテゴリ一覧の隣に、カスタムフィールドで検索できるようしたり~等の方法が一般的かなと思うのですが、そもそも、それも使いづらい。
かといって、管理画面の投稿一覧等の検索で、いい感じのプラグインなんて分からない。
一覧テーブルの上に、いい感じでいろんな検索ができるボックス?を表示させたいんだけど、そもそもそこにまともなフックが見当たらない。。。 🙄
使いやすいほうがいいんだけどなぁ。でも、自分で作るのめっちゃ手間掛かる。。。他のプラグイン作者が作ってくれればありがたいなぁ~
そんななか、とあるWordPressを使ったサイトで、管理画面の検索を導入せざるを得なくなったので、何とか方法を考えて検索機能を追加しました。
いまはまだ、基本項目しか検索できないし、投稿ステータスもすべての投稿タイプの中から選択できてしまうので、まだ使いやすいとは言えませんが、フィルターフック(mywp_controller_admin_posts_custom_search_filter_fields-{post_type} 等)でご自身で検索項目を拡張することができるようにしました。
(フックの使い方のサンプル等はそのうちドキュメントに追記します)
Advanced Custom Fields や WooCommerce を使っている場合、検索をもっと拡張させたいと思っていますが、開発に時間も掛かるし、脳もいっぱいいっぱいだし、そろそろ夕飯も作らないといけないし。。。 🙄
なので、とりあえず、今回のリリース(1.24.0)はここまで、としました。
今回の機能開発は結構疲れました。。。 😆
アップデートの説明は以上です。ここまでお読みくださりありがとうございます。 😀
My WP Addon Lockout のアップデートを行いました。 最新バージョンは 1.10.6 になります。 🙂
今回はパッチ更新となり、修正と更新を行いました。
いつも通り、ハニーポット的なところにアクセスのあったリクエストを、Blocklist ととして更新しました。
アップロードファイルのBlocklist チェックを行う際、アップロードが配列の場合にエラーを起こしていましたので、配列の場合は無視するようにしました。
My WP Customize Admin/Frontend のアップデートを行いました。 最新バージョンは 1.23.1 になります。 🙂
今回はパッチ更新となり、いくつかの小さい更新を行いました。
検索エンジン向けのSitemap XMLをWordPressの標準で出力してくれるのはいいと思うのですが、ユーザー一覧まで出力されるのは避けてほしいなぁと思い、My WP Customize にて、Sitemap XMLの出力を少し調整できるようにしていたのですが、WordPress 5.5から導入された機能で、5.4以前のWordPressではエラーが起こっていたため、その修正を行いました。
念のため、投稿などの一覧画面での値をエスケープしました。
My WP Customizeには、投稿内のカスタムフィールドを一括で同じ値に更新できる機能があるのですが、その値がシリアライズ化されている値の場合にエラーが起こっていましたので、その修正を行いました。
次の更新はマイナー更新を予定しています。 🙂
Announce from the Dashboard のアップデートを行いました。 最新バージョンは1.5.3です。
今回はセキュリティアップデート(XSS対策)になりますので、最新バージョンへのアップデートをお勧めします。 🙂
今回、Announce from the Dashboard に脆弱性のご連絡をいただき、アップデートしました。
脆弱性の内容としてはシンプルで、Javascriptを入力すると、それが出力される、というものです。
しかし、このプラグインで、それ自体も出来るようにしたほうがいいよな~(いちいちJavascriptをテーマやプラグインに書いて保存する事自体、ちょっと手間だよな~)
と思ったため、そのようにしたような記憶があるような、無いような。。。 😳
私の理解が間違っている or 足りていないからなのか分かりませんが、これは脆弱性になるんだろうか。。。
と疑問が出ましたが、結局答えが出ず。
(おそらく、なるべく機能を分けて、それぞれを最小限の機能ができるようにすればいいのかな?)
とりあえず、最新版のWordPressには対応させる気はないし、あまりこのプラグインを使われているユーザーも多くないと思いましたので、Javascriptを入力しても実行されないよう、更新をしました。
もし Announce from the Dashboard にJavascriptを必要として入力していたかたは、1.5.3からはサニタイズされますので、別の方法(テーマファイルに書く等)でご対応お願いします。 😉
Announce from the Dashboard は今後もセキュリティアップデートのみで、新機能の開発は行わない予定なので、もっと機能が欲しい方は My WP Customize のアドオン「My WP Add-on Announce」を組み合わせてご利用ください。 🙂
My WP Customize Admin/Frontend のアップデートを行いました。 最新バージョンは 1.22.2 になります。
今回は主に、以前からいつかやろう、そろそろやろう、そろそろやらないとまずいな、もうやらないとまずいな、今月には更新しないとまずいな、今週には更新しないとまずいな、明日には…。 😳 と思っていた PHP8.1 への対応をしました。
WordPress.org のサポートフォーラムからも「 PHP 8.1 対応しないの?」と、お問い合わせありましたが、他の事で手一杯のため、なかなか更新できずにいましたが今回やっと更新しました。 😛
ちなみに、簡単なテストでしたが PHP8.2 でも問題なく動作している感じでした。 😉
以前、どれくらい前なのか覚えてないのですが、 PHP 8.1 で簡単に動作した時は、結構いろいろなエラーがあったなーという印象で「こりゃ更新するのは大変だなー」と思っていたのですが、今回改めて php8.1 で動作テストすると、そこまで大きなエラーがなく「あれ?これだけ?? 🙄 」という感じでした。
う~ん。php.ini のエラー設定も E_ALL にしているし、これだけなのかなぁ。
PHP 8.1 のパッチバージョンを変えてテストしてみようかなぁとも思ったりしましたが、わざわざパッチバージョンの古いPHPを使う事って、あんまり無いと思われるので、まぁいっか!という事にしました。
という事で、もし PHP8.1 以上で My WP Customize を利用していてエラーがあれば、お手数ですがお問い合わせください。 🙂
My WP Customize Add-on Lockout のアップデートを行いました。 最新バージョンは 1.10.4 になります。
ハニーポット的なサイトにて、不正なアクセスっぽいリストが溜まってきたので、アクセスをブロックしたいリストを更新しました。
My WP Customize Admin/Frontend のアップデートを行いました。
最新バージョンは 1.21.1 になります。セキュリティ対応も含みますので、最新バージョンへの更新をお勧めします。 🙂
普段、スマホで Google からのオススメ記事をよく見ることがあるのですが、 今回はその記事の中に、patchstack さんが公開していた Advanced Custom Fields プラグインの脆弱性報告に関する記事があり、気になって読んでいたのですが、これって、My WP Customize にも影響するんじゃね?と思い、調査しました。
結果としては、My WP Customize も同じような状況で対策されていなかったので対応いたしました。
1.21.0 以下の全バージョンが影響を受けると思いますので、古いバージョンのプラグインを使っているかたは最新版へのアップデートをお願いします。 🙂
そもそも、今回のXSS脆弱性の原因となった admin_body_class フィルターフックが出力される場所の
<body class=”wp-admin wp-core-ui no-js <?php echo $admin_body_classes; ?>“>
この部分ですが、 そもそもプラグインではなく WordPress 側で classの値すべてを、esc_attr() で囲むような作り方がいいのでは?と思いました。 😐
が、よく考えたら、この部分ってあまりカスタマイズしたい人なんて多くないと思いますし、ましてや $_GET 等で受け付けたリクエストの内容を admin_body_classes に追記されるなんて、思ってもいなかったかもしれないなぁ、と思いました。 😕
Proudly powered by WordPress