Repository navigation
Commit 5936ef0
Close what the audit found: encrypted meta, search scope, row limits, two script bugs
The meta registrar ran a type's own sanitizer on the ciphertext the
encrypting context writes, so every encrypted value that was not plain
text -- a number, a URL, a select, a group -- was wiped on its way into
the database. Ciphertext now passes through; the plaintext was already
sanitized by the same type before it was encrypted.
The encrypting context no longer fails open or silent: a field marked
encrypted refuses to store plaintext when OpenSSL or the salts are
missing, an unreadable ciphertext reads as empty and survives the delete
a blank form would otherwise trigger, the placeholder salts are ignored,
and a short GCM tag is treated as tampering.
The post search showed every author's drafts and private posts to anyone
holding edit_posts; it now asks for editable posts and checks each post
type's own capability. A callback source received whatever arguments the
browser sent; it now receives only the keys the field declared, and its
results are paged. The label lookup hands a callback the same third
argument the search does.
Server-side limits: max_rows on repeaters and flexible content, max on
ajax fields, and an array submitted where text was expected is nothing
rather than the word "Array". Nested fields are built around what they
already hold, so a licence in a repeater is not overwritten by its own
mask. A code field follows core's unfiltered_html rule. Password and
licence fields are refused REST exposure, and a default is shaped by the
type before register_meta() sees it.
In the script, rows cloned from the template kept its -1 index because
the renumbering pattern matched digits only, so two added rows posted as
one; and Reorder referred to Combobox from outside the block that
declares it, which threw the first time a sortable chip moved. Modules
that listen on the root now bind it once, the relational search ignores
stale and post-blur responses, reindexing retargets aria-controls and
data-target as well as labels, and the repeater has a live region of
its own.
The stylesheet uses logical properties for RTL, core's colour tokens in
place of three that were never defined, and loses its dead and duplicate
rules; small controls reach 40px on mobile and forced colours cover the
card, swatch and tab states.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Kwx2STJ4EaVaJofEJJ9Zo1 parent d02f7e4 commit 5936ef0
53 files changed
Lines changed: 1686 additions & 485 deletions
File tree
- assets
- css
- js
- src
- Actions
- Context
- Rest
- Search
- Support
- Types
- tests
- js
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
0 commit comments