-
Notifications
You must be signed in to change notification settings - Fork 0
Security
webdesign29 edited this page Jun 13, 2026
·
1 revision
-
Auto mode talks only to
127.0.0.1:80. The bextpurge-proxyand SDK endpoints are loopback-gated on the bext side; no credentials are sent or needed. -
Cloud mode sends an
Authorization: Bearer <token>to a remote endpoint. The token is the trust boundary — see below.
-
Opt-in: the bext endpoint only honors a bearer token when
BEXT_PURGE_TOKENis set in the bext server's environment. Unset → remote purge is rejected (loopback/admin only). -
Scoped: the token authorizes only
POST /__bext/cache/purge-proxy, not the rest of the/__bext/*surface. -
Constant-time comparison (
bearer_token_eq), with empty/length-mismatch rejected. - Use a long random secret over HTTPS; rotate by updating both the env var and the plugin setting.
-
Known limitation: a valid token may purge any
hostit names. Per-tenant scoping (one token → one host) is planned. Keep a token within a single trust boundary.
- Admin pages and handlers require
manage_optionsand verify a nonce (check_admin_referer/wp_nonce_field). - Output is escaped (
esc_html/esc_url/esc_attr); request input iswp_unslash+sanitized. - The admin-bar "Purge this URL" link never reflects the raw request URI (avoids the classic
add_query_argreflected-XSS), and all admin-bar hrefs areesc_url-wrapped. - The plugin never edits
wp-config.php, disables third-party plugins, or stores secrets in the repo. Tokens/keys live in thebext_wp_settingsoption orwp-configconstants.
Logged-in, WooCommerce-cart, comment-author, and preview requests get
Cache-Control: private, no-store so a personalized response can never be cached under the
anonymous key.
Every bext call is time-bounded and is_wp_error-checked; a failure can never break a WordPress
request (the SDK email bridge falls back to native wp_mail, purges are fire-and-forget, etc.).
Found a vulnerability? Please open a private advisory on the repository (Security → Report a vulnerability) rather than a public issue.
bext-wp · GPL-2.0-or-later · Sponsored by webdesign29 & Inklura · bext.dev
Getting started
Features
Reference
Operations