CMS Security Is Also Content Governance: What Marketing Teams Should Ask About
Marketing decides who may change, approve, publish, reuse, and withdraw content. Engineering and security enforce those decisions across the CMS, its APIs, asset storage, integrations, and the delivery layer. This guide gives you five groups of questions for your technical team or CMS partner, plus the evidence to request for each.

On 4 November 2026, Payload released version 3.93.0 and flagged it as containing vital security updates. The release notes list fixes for block-level read access, remote URL upload restrictions, XML and XSL responses, tenant-related redirects, and the escaping of stored values when rich text converts to HTML. Read that list as a content lead: blocks, uploads, tenants, rich text. Your team works with each of them daily.
The notes report no breach, no active exploitation, and no severity score, and we read none into them. Treat 3.93.0 as a dated example. Before acting on it, your implementation team should check Payload's current advisories and supported versions.
Now picture a hypothetical launch. Your team keeps a campaign page in draft and uploads the embargoed product PDF to storage anyone can reach. The page stays unpublished, and anyone holding the file URL can still download the PDF.
Put one question to your team: which part of our publishing workflow enforces the embargo?
What does a headless CMS agency do?
Headless CMS development services cover six areas: consulting and platform selection, content modeling, frontend development, migration, integrations, and post-launch governance. A headless CMS development company takes on the part the license doesn’t cover: turning a content API into a fast website your editors can actually run.
That gap shows up in the market numbers Grand View Research puts the headless CMS software market at $1.75 billion in 2025, growing to $6.23 billion by 2033, and names services as the fastest-growing segment of that market, on the back of demand for custom development, integrations, and frontend work around the platforms. The license is the smaller half of most headless projects. The build is the rest.
The work splits into four parts. Headless CMS consulting decides whether headless fits at all, which platform matches your team, and what the content model should look like. Development covers the frontend (typically Next.js or Nuxt), rendering strategy, integrations, and the editorial setup. Migration moves content, URLs, and SEO equity from the old system. Governance keeps the setup healthy after launch: roles, workflows, performance budgets, and component hygiene. Headless CMS developers who handle only the build deliver half a project.
Why is CMS security a content governance responsibility?
CMS security and content governance overlap because both determine who can do what to your content. Governance sets decision rights, approval rules, content classifications, and accountability. Security protects confidentiality, integrity, and availability, and it enforces the access boundaries governance defines.
The two terms stay distinct. An editor who publishes the wrong price made an editorial error, and someone who changes that price with a stolen login committed a malicious act. Both hit the same page, and each calls for a different fix.
In marketing terms, the overlap covers four outcomes:
Launch materials stay confidential until the embargo lifts.
Product claims stay as your reviewers approved them.
Nobody creates or edits a redirect without authority.
Publishing keeps working through a campaign.
A headless architecture spreads responsibility across the CMS, the frontend, the APIs, storage, and integrations. That spread makes a setup neither secure nor insecure by default. It gives you more places to ask questions.
Five questions cover those places: who can act, what can leave, which boundaries apply, what you can reconstruct, and who maintains the system.
You own the meaning of "approved and appropriate to publish." Your technical team owns how the system enforces that rule.
Who can change and publish our content?
Each person and each machine should hold the minimum permissions the job requires, and the server should check them on every request. Your task is to define those permissions, and your technical team's task is to show you the checks working.
Signing in and having permission are separate steps. Authentication confirms who someone is, and authorization decides what that person may do. OWASP's Authorization Cheat Sheet recommends least privilege, denial by default, and a permission check on every request, whatever its source.
A role label or a hidden Publish button doesn’t establish that the server enforces anything. Someone has to test it.
Take a multi-market site as an example of a workflow you might want. A translator can revise a German copy but cannot publish a new price or change a global redirect. You define that rule, and your CMS may or may not support it out of the box.
Questions to ask
Who can edit, approve, publish, unpublish, delete, and restore each content type?
Can freelancers and translators work only on their assigned brands, languages, or sections?
Who can change redirects, SEO directives, reusable components, and sensitive claims?
Can scripts, API tokens, or integrations perform actions an editor cannot?
When someone leaves, who removes the account and reviews the credentials and integrations tied to that person's work?
Evidence to request
Ask for a permissions matrix that maps your real roles to real publishing actions. Then ask for a demonstration with a restricted test account. Have the technical team confirm the same restrictions hold through the relevant API and server-side paths, beyond the editor interface.
A platform example: Payload
Payload's Local API runs operations on the server. Payload's documentation states that overrideAccess is set to true by default in Local API operations, which skips access control. A developer who wants a server-side operation to respect permissions sets overrideAccess: false and passes the user.
This describes code running on your own server. It says nothing about whether a public API is open. The useful question for your developers: which of our custom server-side operations run with access checks switched on?
Warning sign
"Everyone is an administrator because it makes publishing easier."

Find out who owns each part of your publishing stack
Walk us through your CMS setup and publishing workflows. We'll help you map which permissions, asset rules, and update duties have an owner.
Are our media files protected as carefully as our pages?
Pages and files can follow different access rules, so ask about files on their own. Split the topic into three questions: who may upload a file, whether the file is safe to process and serve, and who may retrieve it.
For uploads, OWASP's File Upload Cheat Sheet recommends layers. Its list includes allowed file types, validation beyond the Content-Type header the uploader supplies, size limits, uploads by authorized users, and storage and scanning controls. One extension check does not make a complete defense.
Retrieval deserves a content lead's closest attention, and Sanity's documentation shows why.
A platform example: Sanity
Sanity states that assets stored in a dataset stay public on its asset CDN even when the dataset is private. The private setting keeps unauthenticated users from finding asset URLs through the API, and the URLs are hard to guess. A person who holds the URL can still fetch the file.
Sanity offers per-asset visibility and signed URLs for Media Library assets, a separate capability. "The dataset is private" and "the file is private" are two claims, and each needs its own check.
Questions to ask
Which assets are intentionally public, embargoed, licensed, customer-specific, or internal?
Does making a page private or unpublished also restrict its images, PDFs, and downloadable files?
Can a person retrieve a restricted asset through its direct URL without the intended authorization?
Do remote URL imports pass the same controls as ordinary uploads?
What happens to old URLs, cached copies, and transformed variants after someone replaces or withdraws a file?
Evidence to request
Ask for an asset-classification policy and an engineer-led test with non-sensitive sample files. The test should cover the intended delivery paths, direct URLs included. Where the setup uses signed access, ask for the documented expiration and cache behavior.
One nuance for campaign teams: a form-gated lead magnet may use a public file URL on purpose. That is a marketing choice, and it offers no protection for confidential material.
Warning sign
"The PDF is secure because it is not linked in the navigation."
Can one brand or tenant access another tenant's content?
Only an authorized test can tell you, because a filtered interface and an enforced boundary look identical to an editor. Start by agreeing what counts as a tenant.
A tenant is a customer or organizational boundary inside a shared application. Running several languages or websites from one CMS doesn’t, by itself, create separate security tenants.
OWASP's Multi-Tenant Security Cheat Sheet identifies isolation risks across databases, APIs, caches, storage, and asynchronous processing. It also separates two acts: selecting a tenant and being authorized to act in it.
A tenant dropdown and a filtered list make an editor's work easier. Neither proves isolation, and separate caches do not replace an authorization check.
Picture a shared content hub serving two brands with different launch dates. Brand B launches later than Brand A. The boundary you need covers Brand B's embargoed assets and previews as well as its published pages.
Questions to ask
Which brands, customers, or business units must be isolated, and what content may they share?
Can a Brand A editor retrieve Brand B's drafts, assets, search results, or exports?
Do those boundaries hold in previews, integrations, background jobs, and cached responses?
Who can use cross-tenant administrative privileges, and for which tasks?
What happens to data and access when you remove or restore a tenant?
Evidence to request
Ask for a short boundary map and an authorized engineering test with two synthetic tenants. The test should attempt access that must fail as well as access that must succeed. Have the team record deliberately shared assets on a separate list.
Warning sign
"Users cannot see the other brand in the sidebar, so it must be isolated."
Can we reconstruct a change and recover from it?
A yes takes three separate capabilities, and each answers a different question.
| Capability | The question it answers |
|---|---|
| Content version history | What did this item contain before, and can we restore it? |
| Audit or security logging | Which actor performed an event, when, against what target, and with what outcome? |
| Backup and recovery | Can we restore the required system state after deletion, corruption, or infrastructure failure? |
Payload's Versions documentation describes configurable document history, comparison between versions, and restoration. That covers documents. It does not, by itself, establish coverage for sign-in events, token creation, or each administrative action.
OWASP's Logging Cheat Sheet treats security event logging as distinct from audit and transaction trails, which teams collect for other purposes. It also cautions against writing raw credentials and sensitive data into logs.
A platform example: Strapi
Strapi documents its Audit Logs feature as part of the Enterprise plan. The same page covers Strapi's MCP server, which lets AI clients work with content. Strapi logs entry actions performed through that server and does not log actions that only read content.
"We have audit logs" therefore leaves a question open: can you reconstruct who read a piece of content, or only who changed it?
Questions to ask
Can we identify who changed a sensitive claim, redirect, asset, or publishing permission?
Are API and automation actions attributable, or do they appear as one shared actor?
Which events does the system record, for how long, and who can access or modify the records?
What does a restore include: the document, linked assets, relationships, and publication state?
When did we last test recovery, and how much downtime or recent work could we lose?
Evidence to request
Ask for one reconstructed test change, one recovery exercise, and the retention policy. Have the team explain two terms in plain language. Recovery time objective (RTO) is how long you can stay down, and recovery point objective (RPO) is how much recent work you can afford to lose.
Warning sign
"We have version history, so we can recover everything."
Who keeps the publishing stack secure after launch?
A named owner with a budget line should. Treat maintenance as an operating responsibility, the same way you treat hosting or licences.
NIST's guide to patch management, SP 800-40 Revision 4 from April 2022, describes the work as identifying, prioritizing, acquiring, installing, and verifying updates. NIST frames that work as preventive maintenance. Each of the five steps needs someone responsible for it.
Ownership can split across several parties. Work out what the SaaS vendor, the hosting provider, your own team, and your implementation partner each maintain. Hosted infrastructure does not mean someone maintains your custom integrations and frontends for you.
Picture an urgent patch arriving during a launch. Your process should name the person who can authorize the change and list the business-critical journeys the team must validate.
Questions to ask
Who monitors advisories for our CMS, plugins, framework, runtime, and hosting?
Who determines whether our configuration is affected, and who owns the remediation decision?
What is our risk-based response process, including an emergency route during a campaign freeze?
Which publishing, preview, localization, asset, and integration journeys do we test after an update?
How do we verify the fix reached each relevant environment, and how do we monitor for regressions?
Evidence to request
Ask for a responsibility map, a component inventory, and one recent update record. The record should show assessment, testing, deployment, and verification.
A note on deadlines: no universal 24-hour or 72-hour patch window fits every team. Response targets depend on severity, exposure, evidence of exploitation, and your organization's risk policy. Rollbacks need the same care, because returning to a known-vulnerable version carries its own risk. Your technical incident plan should address it.
Warning sign
"We will update when we redesign."
How do SEO and AI change the governance questions?
They add two decisions to your list: which content you intend the public to find, and what an AI agent may read or publish.
Discovery controls and confidentiality controls do different jobs. Google's robots.txt guidance explains that the file manages crawling and is no reliable way to keep a page out of search, while a noindex directive controls indexing. Neither keeps content confidential, so confidential content needs access control.
For visibility, Google's AI features documentation sets one technical condition for appearing as a supporting link in AI Overviews or AI Mode. The page must be indexed and eligible to show in Search with a snippet. These are Google's rules, and other LLM products set their own.
The people who can edit canonical URLs, redirects, robots directives, and structured data therefore shape what the public finds.
Questions to ask
Who can change canonical URLs, redirects, robots directives, and structured data?
Which content do we intend for public discovery?
Can an AI content agent read private drafts or publish externally, and what approval does that require?
OWASP's AI Agent Security Cheat Sheet recommends giving agents the minimum tools a task requires and requiring explicit approval for high-impact actions. It also recommends that a component outside the model validates authorization before anything executes.
A prompt telling an agent not to publish is an instruction, and a permission boundary is something the system enforces whatever the prompt says.
Protecting the integrity and intended availability of your content supports the conditions for discovery. Stronger CMS controls come with no promise of higher rankings or more LLM citations.
What should we ask our CMS partner this month?
Pick one sensitive content journey and follow it from creation to delivery and withdrawal. An embargoed launch works, and so does a multi-brand product update.
A 30-day plan gives the review a shape. Treat it as an editorial recommendation and adjust it to your team.
Week 1. Inventory your content classifications, your human and machine identities, and your system owners.
Week 2. Review publication permissions and restricted asset delivery with engineering.
Week 3. Request evidence of change attribution and recovery, plus tenant isolation where it applies.
Week 4. Close the priority gaps and agree the maintenance and escalation process.
Three requests give you something concrete to watch:
"Show us a restricted editor attempting a prohibited publication."
"Show us how a restricted sample asset is delivered."
"Show us the last completed recovery exercise."
Authorized staff should run each test, using safe test data.
CMS security checklist: who defines and who demonstrates
Use this table to split the work. The ownership model is a starting point to agree with your own teams and partners.
| Area | Marketing defines | Technical or security team demonstrates |
|---|---|---|
| Roles and publication | Who may change and approve each type of content | Enforced permissions across UI, API, and integrations |
| Media | Public, embargoed, restricted, and licensed asset classes | Appropriate upload and delivery controls |
| Tenant boundaries | What must be isolated and what may be shared | Isolation tests covering relevant data and delivery paths |
| Change history and recovery | Required traceability and acceptable business interruption | Event coverage, retention, and a tested recovery path |
| Updates | Critical launch journeys and communication contacts | Advisory handling, risk assessment, testing, and deployment verification |
Mark each row with one of four statuses: Verified, Needs evidence, Gap, or Not applicable. Skip numerical scores, because a number would claim a precision this review cannot support.
This is a starting review. It certifies nothing and does not replace a professional security assessment.
FAQ
CMS security
No. Marketing holds the decision rights: who may change, approve, publish, and withdraw content. IT and security hold the enforcement, which means making the CMS, APIs, storage, and integrations apply those decisions. Either half alone leaves a gap.
It may not, because asset delivery can follow its own access model. Sanity documents that assets stored in a dataset stay public on its asset CDN even when the dataset is private. Sanity offers per-asset visibility through its separate Media Library. Ask your team to test a restricted sample file through its direct URL.
No. Version history shows what a content item contained before and lets you restore it. Audit logging records which actor performed an event, when, against what target, and with what outcome. Coverage can vary by platform and plan, so ask which events your system records.
No, and it is no less secure by default either. A headless setup spreads responsibility across the CMS, frontend, APIs, storage, and integrations. The architecture you build and the way you operate it determine your controls and your exposure.
Match the permission to the risk of the action. OWASP recommends minimum tools for each agent, explicit approval for high-impact actions, and authorization enforced outside the model. Publishing is externally visible, so decide in advance which agent actions need human approval.
Get a CMS setup that matches how your team publishes
Naturaily sets up content models, editorial permissions, and publishing workflows around the way your team works. Tell us where your current setup slows you down, and we'll help you find one that fits.


