WordPress5.3がリリースされてからちょうど1ヶ月、さっそくマイナーアップデートがリリースされました。(5.3.1)
大きな変更はなくセキリティ向上やバグ修正が主で、それによりあえて使ってなかったものが使えるときがあります。
ということで内容を確認します。(そのほかの5.3.xのバージョンも。)
ver 5.3.3 次期バージョンのセキュリティ修正反映
2020年4月29日、WordPress5.3の3回目のマイナーアップデートです。
すでに次期バージョン5.4が公開されており、そこで修正されたセキュリティパッチの下位バージョンの適用です。
(次期バージョンは5.4.1で修正済み。)
5.4に上げようか迷っている人のために、わざわざパッチを当てたんですね? それだけ緊急性が高いのでしょう。
内容も5.3独自のものは少ないのでここではくわしい説明はしません。できるだけ速くアップデートしましょう。
ただし動作確認は必要です。サボらないでくださいね。
ver 5.3.2 すぐにアップデートして問題なし
2019年12月18日、WordPress5.3の2回目のマイナーアップデートです。
前回からたった6日、緊急リリースかと思いきやセキュリティアップデートはなく、メンテナンスアップデートだけです。
PHPのFatal Errorなど、重大なエラーでも見つけたんでしょうね?
(個人的見解。)
主な修正
- 日付/時刻: get_feed_build_date() が無効な更新日時の投稿オブジェクトで正しく処理するようにしました。
- アップロード: 大文字小文字を区別しないファイルシステムで大文字の拡張子を持つファイルをアップロードする際の wp_unique_filename() でのファイル名の衝突を修正しました。
- メディア: wp_unique_filename() で、保存先のディレクトリが読めないときのPHP警告を修正しました。
- 管理画面: .active クラスを持つボタンのすべてのカラースキームの色を修正しました。
- テスト/ビルドツール: wp_insert_post() で、投稿日をチェックして未来や公開の状態を設定する際に、適切なデルタ比較を使用するようにしました。
修正ファイル
wp-admin/about.php
wp-admin/css/colors/_admin.scss
wp-includes/version.php
wp-includes/feed.php
wp-includes/functions.php
wp-includes/post.php
wp-includes/version.php
とくに説明が必要なことはありません。修正箇所も少ないし。
問題が起きることはなさそうです。すぐにアップデートしてもよいでしょう。
ただし動作確認は必要です。サボらないでくださいね。
ver 5.3.1 すぐにアップデートして問題なし
WordPress5.3がリリースされてからちょうど1ヶ月後の2019年12月12日、WordPress 5.3.1がリリースされました。5.3系の最初のマイナーアップデートです。
今回は、セキュリティ&メンテナンスリリースです。かんたんに言えば『不具合修正』です。新しい機能の追加はありません。
セキュリティアップデート
REST APIやクロスサイトスクリプティング(XSS)の脆弱性の修正をしました。
WordPress5.3を使ってない人のためにWordPress3.7以降のアップデートにも反映されています。
REST API (Representational State Transfer API)
URLを指定すると常に同じ結果を返すAPI。
URLはユニークで、決まった処理のリクエストになるので、シンプルでわかりやすいのが特長。
処理を受けるサーバーも、URLを見れば何をすれば分かるのでシンプルで実装しやすい。
結果は、HTML, XML, JSONなどで返す。
最近のWebサービスで提供されるAPIはREST APIが多い。
Facebook, Twitterなどもそう。また、ECサイトと在庫管理などのWebサービスと連携するときにもREST APIを使う。
Webサービスでは情報取得、情報の追加・更新・削除などのAPIが提供されるが、その説明にURLを指定するものはREST APIであることが多い。
もうひとつ、セッションを使わないのが特長。
セッションを使わずに1リクエストで処理が完結するため、アクセス数やリクエスト数の多いサイトに適している。(SNSなど)
セッションハイジャックがないので、情報漏えいや不正なリクエストも防ぐことができる。
クロスサイトスクリプティング(XSS)
Webサイトに小さなプログラム(スクリプト)を勝手に差し込み、その小さなプログラムが悪意のある処理を行うしくみ。
サイト内でリンクをクリックすると偽サイトに誘導し、カード情報などを盗む。また、リンクをクリックするとPCを乗っ取り勝手に動かしたりする。
対策としては、許可されたスクリプト以外実行できないようにしたり、ブラウザの設定でスクリプトの実行を禁止する。
メンテナンスアップデート
管理画面のアクセシビリティの改善
WordPress5.3から始まった管理画面のスタイルの向上の続きです。
テキストボックスやボタンなどを見やすくしてアクセシビリティを向上しています。
アクセシビリティ(accessibility)
アクセスのしやすさ。目的を確実に達成できるか?
情報を発信するなら、その情報が確実に伝わるか? の尺度。
可用性(かようせい)という。
アクセシビリティ | 意味 |
---|---|
高い | 目的の機能が提供されている。 |
低い | 目的を達成する機能を提供できてない。 |
同じような言葉にユーザビリティがある。
ユーザビリティ(usability)
使いやすさ。だれでも同じように使えることを目指す尺度。
高齢や低年齢者、障害をもった人たちに対しても、同じようにできることを指すことが多い。
使用性(しようせい)という。
直感的に使えるかどうか。教えないと使えないものはユーザビリティが低い。
ユーザビリティ | 意味 |
---|---|
高い | だれでも使える。 学習は不要。 |
低い | 特定の人しか使えない。 学習が必要。 |
アクセシビリティとユーザビリティの違い
アクセシビリティとユーザビリティはカブってる部分が多い。
ユーザビリティは、そもそも使えることが前提なのでアクセシビリティが含まれる。
アクセシビリティ: 低い ユーザビリティ: 高い | ありえない。 ユーザビリティはアクセシビリティがあることが前提。 |
アクセシビリティ: 高 ユーザビリティ: 低 | ありえる。 使いづらい。学習しないと使えない。 |
アクセシビリティ: 低 ユーザビリティ: 低 | ありえる。 アクセシビリティが低いとそれに引っ張られてユーザビリティも下がる。 逆にユーザビリティが上がると、やりたいことができるのでアクセシビリティも上がる。 |
たとえば、使いやすさを向上する(ユーザビリティ)ために新たな機能を追加(アクセシビリティを上げる)といった使い方をする。
WordPress.org 開発ノート
Admin form controls height and alignment standardization in WordPress 5.3.1
内容はCSSを変更しているだけですが、パット見はどうでもいいように感じるくらい細かい作業をしています。
使い勝手の向上のために地道な作業をしていることが分かりますね?
ブロックエディタの修正
ブラウザEdgeではスクロールに問題があったらしく、またJavaScriptにも問題があったようです。
それを修正しました。
スムーズスクロールのCSS化
ページ内でジャンプすると、キュルキュルーってコンテンツが動きながら移動することがありますよね?
それをスムーズスクロールといいます。
WordPressの標準テーマ Twenty Twenty では、処理をJavaScriptベースからCSSへ移行しました。
ちなみに、スムーズスクロールをOFFにするには、
<html>のクラスに 'disable-smooth-scrolling' を追加します。
WordPress.org 開発ノート
ボクの拙いものでよければこちらもどうぞ。
パーマリンクでの日付について
パーマリンクで日付を使っているとき、PHPの設定でタイムゾーンが変わると、そのページが404を返すことがあったようです。
パーマリンクでの日付がPHPのタイムゾーン変更に耐えられるようにしたらしい。
くわしい経緯はこちらをどうぞ。
(英語ですが。ボクも頭とケツしか読んでない。)
WordPress.org ticket
その他
ここからトトンと駆け足で行きます。
(パーマリンクあたりから説明いらねーやってなったので。)
- oEmbedのサービスが終了したのでブロックから削除
- PHPライブラリ sodium_compat のアップデート(ポリフィルらしい)
- サイトヘルス・管理者メール認証のリマインド間隔をフィルタリングできるようにした
- 画像アップロードでファイル名が一致した場合、サムネイルが他のアップロードを上書きしないようにし、アップロード後の拡大縮小の対象からPNG画像を除外するようにした
- 管理用メールの検証で、サイトのロケールではなくユーザーのロケールを使用するようにした
トランスパイル(transpile)
プログラムを、べつのバージョンや、べつの言語のプログラムに変換すること。
一種のコンパイラ。トランスコンパイラともいう。
JavaScriptは最新の仕様で開発して、任意のバージョンにトランスパイルする手法が一般的になっている。
(新しい仕様のほうがシンプルな記述で読み書きしやすいため。)
@babelが有名。
トランスパイルは文法を変換するが新しいAPI(関数やオブジェクト)までは対応できない。
古いもので確実に動かすためにはポリフィルも必要。
ポリフィル(Polyfill)
プログラムのバージョン違いでAPIが不足するところを補うこと。
プログラム言語はバージョンが上がると新しいAPIを追加する。APIは関数やクラス・オブジェクトのこと。
古いバージョンで動かすときは新しいAPIと同じ機能がないと動かない。それを作るのがポリフィル。
ポリフィルは、新しいAPIを移植するのではなく、古いバージョンのプログラムで実装できるAPIに作り直して提供する。
jQueryのmigrateはjQueryのポリフィル・パッケージ。
トランスパイルで有名な@babelにもポリフィルの拡張機能がある。
そのほか、くわしくはこちら。
問題が起きることはなさそうです。すぐにアップデートしてもよいでしょう。
ただし動作確認は必要です。サボらないでくださいね。