Skip to content
W
Sign in

Security

Secure defaults depend on keeping trusted data boundaries explicit: parameterized SQL, escaped template output, protected secrets, and role checks.

Data and output

  • Use prepared statements for database values. Do not pre-escape request input with addslashes().
  • Native template values are escaped by default. Use raw HTML output only for trusted or safely rendered HTML.
  • The Markdown renderer escapes raw HTML and allows only safe URL schemes. It does not execute PHP or template syntax.
  • Keep Settings.json, JWT keys, passwords, and private keys out of version control.

Deployment

Use HTTPS, keep debug output disabled, change the demo password, and restrict API routes by role. Configure trusted proxies explicitly before using forwarded IP headers for rate limits. Back up the database before applying schema migrations; the Markdown migration preserves existing article bytes as legacy_html.

The CLI doctor command reports deployment checks. It is read-only and does not apply migrations.