WP Cerber Security 9.9.5
English version: WP Cerber Security 9.9.5
今回のリリースでは、セキュリティイベントと、その原因となった設定との間の距離を縮めることに重点を置いています。WP Cerberがアクティビティログから決定の背後にある正確な設定にリンクする方法を再構築し、管理画面のUIの不具合を2つ修正し、プラグインが管理画面でURLをエスケープする方法を強化しました。また、内部的には、管理画面のアナウンスをレンダリングされたHTMLではなく、構造化され検証済みのデータとして保存するように変更しました。
主なポイント
アクティビティログの説明にあるリンクをクリックすると、適切な場所に移動できるようになりました。WP Cerberの決定が役割ポリシーに基づいている場合、リンクをクリックすると正しい役割タブが開き、該当するフィールドがハイライト表示されるため、設定ページに飛ばされて自分で探す必要がなくなりました。
このリンクをクリックすると、対象の設定項目がビューポートの中央に表示されるため、WordPressの管理バーがそれを覆い隠すことがなくなり、周囲の設定項目も確認できるようになります。
メール転送セクションでは、リンクが表示されるべき場所に生のHTMLが表示されなくなりました。
管理者エクスペリエンス
役割ポリシー設定が直接参照できるようになりました。以前は、設定用に作成されたリンクの URL フラグメントには、強調表示するフィールドと開くタブという 2 つの相反する意味を持つ単一の値が含まれていました。役割ポリシー設定は、そのフィールドが必要とするスロットが既にタブ ポインタによって占有されていたため、強調表示することはできませんでした。現在は、フラグメントに 2 つの独立した宣言が含まれており、それぞれが 1 つの項目を指定し、もう 1 つがなくても使用できます。実際には、以下に示すような説明リンク [管理] は、該当するフィールドが点滅する状態で、ワンクリックで正確な役割タブにジャンプするリンクになります。
スクロールリンクとフラッシュリンクは設定を中央に配置します。ネイティブフラグメントナビゲーションはターゲットをブラウザウィンドウの上部に揃えます。これは管理バーが配置されている位置と完全に一致します。ページが準備完了になったときと、ウィンドウの読み込みが完了した後に、設定行を中央に配置します。2回目の処理では、遅延読み込みコンテンツによって発生するネイティブの再配置とレイアウトのずれを修正します。設定行の外側にあるフィールドラッパーはそのままにされ、ブラウザが「 prefers-reduced-motion設定を報告すると、スクロールはアニメーションなしで実行されます。
セキュリティの変更点
管理出力用のURLエスケープ処理を強化しました。crb_escape_url crb_escape_url()関数内のフィルタと正規表現スタックを、明示的なURL構造チェックに置き換えました。これにより、これまでサポートしていたHTTP(S)、FTP(S)、mailto形式に加え、単一のスラッシュで始まるルート相対URLも受け入れられるようになりました。プロトコル相対URL、バックスラッシュを含むネットワークパス、サポートされていないスキーム、その他の相対形式は引き続き拒否されます。
また、承認された URL から引用符、山括弧、バッククォートを削除する処理も停止しました。古いサニタイザーを廃止したことで、非 ASCII の URL パスがそのまま保持されるという明らかなメリットがあります。無効な UTF-8 の場合、エスケープされた結果が空の属性値に圧縮されることはなくなりました。これは、エスケープ処理によってそれらのバイトが置き換えられるようになったためです。
信頼性の向上
管理画面のお知らせは、マークアップではなく構造化データとして保存されます。WP Cerberの内部UIファクトリー表現を厳密にシリアル化したUI Specを導入しました。レンダリングされたHTMLを永続化する代わりに、プラグインはバージョン管理され検証済みのドキュメントを保存し、レンダリング時にUIツリーに復元してアクティブなレンダラーに渡します。
バグ修正
アクティビティログ内の最初の設定リンクのみが正常に機能しました。アクティビティログページで、同じユーザーが関与するイベントに対して複数の説明が表示され、WP Cerberの判断基準がロールベースであった場合、最初のリンクのみが対象までスクロールしてハイライト表示されました。それ以降のリンクはすべて、設定に移動することなくロールベースの設定ページを開いてしまいました。
メール転送セクションに生のHTMLが表示されていました。このセクションでは、「WP Cerberのプロフェッショナル版で利用可能」リンクのマークアップがそのまま表示されていましたが、リンクとしてレンダリングされていませんでした。通知はHTMLアンカーとしてセクションの説明に追加されていましたが、セクションの説明は出力前に設定レンダラーによってエスケープされていました。現在はセクションの説明はプレーンテキストのままで、PRO版の要件はUI Factoryでレンダリングされた構造化セクションリンクとして個別に表現されています。説明のエスケープ処理は保持され、セクションレベルのリンクは安全にレンダリングされます。
まとめ
今回のアップデートにより、トリアージが短縮されます。アクティビティログの説明から、決定の根拠となる設定に直接アクセスできるようになり、画面中央に強調表示されます。メール転送セクションでは、PRO通知が正しく表示され、管理者リンクはより厳格なルールに基づいてエスケープされます。お知らせは検証済みの構造として保存されるため、破損したデータは静かにエラーが発生するのではなく、目に見える形でエラーとして表示されます。
互換性
このリリースは、PHP 7.4.33、8.0.30、8.1.34、8.2.33、8.3.33、8.4.24、および 8.5.9、ならびに WordPress 5.8.14、6.6.6、6.7.6、6.8.7、6.9.6、および 7.1 でテストされています。
