Security for developers
Roles and capabilities, per-user permissions, filtered HTML, CSRF, escaping, SQL, uploads, rate limits and tokens - what Basehim does for you, what your theme or app must still do, and how to report a vulnerability.
51 articles
Roles and capabilities, per-user permissions, filtered HTML, CSRF, escaping, SQL, uploads, rate limits and tokens - what Basehim does for you, what your theme or app must still do, and how to report a vulnerability.
What Basehim publishes so AI crawlers and agents can find and use a site - robots.txt rules per crawler class, llms.txt, the agent resource catalog and in-browser WebMCP tools - and how themes and apps extend each one.
Basehim's built-in Model Context Protocol server - how assistants connect over OAuth 2.1 or with an API key, what each tool does and which scope it needs, how roles limit agents, raw JSON-RPC examples, and how apps add tools.
Register your own content types, with admin screens and, since 1.2.94, public pages, taxonomies and custom fields; add custom blocks to the editor with a PHP renderer for the public site; and provide widgets for widget areas, the editor and the dashboard.
How an app declares what it will touch, how site owners approve it, what happens when a call isn't allowed, the full permission catalogue, logs and the static scanner - and what the model does not protect against.
Register browser actions with $this->ajax() and call them with Basehim.ajax. Core checks the session, CSRF token, capability, input schema and rate limit before your handler runs. Includes the full option and error reference.
Add pages to the admin with adminGet() and adminPost(), control who can open them, handle forms safely with CSRF tokens and flash messages, and use the admin's buttons, cards, dialogs and toasts. Public pages have their own guide.
Everything an app can ask core for through $this->api() - posts, pages, custom types, media, users, comments, terms, menus, settings, cache, mail, outbound HTTP and scheduled tasks - with examples.
How actions and filters work in Basehim, with the complete list of core hooks - content, users, comments, media, mail, admin, editor, SEO, MCP and routing - and the arguments each one passes.
What core's SEO service prints so your theme doesn't have to, how to adjust it per page or site-wide, how to show dates in the site's timezone, and how to print responsive featured images.