Standard
The trivial plugin gets the same treatment.
Security tends to get applied in proportion to how important a plugin feels. That’s backwards — the forgettable one with a settings page nobody reviewed is the way in. Every Apaxon plugin is checked against the same standard before it ships, whatever it does.
What we check, every release
Authorisation
- Every action confirms the user holds the capability for it — not just that the menu was visible.
- Every state-changing request verifies a nonce.
- Every REST route declares a real permission check. Public read endpoints must justify themselves in a code comment.
Input and output
- Sanitised on the way in, escaped on the way out. Both, always.
- Every database statement with a variable in it is parameterised.
- No user-supplied data is ever deserialised. No dynamic code execution, anywhere.
Files and uploads
- Uploads validated by real file type, not by extension.
- Uploaded files stored where they cannot be executed.
- No plugin accepts a file path from a request and reads or writes it.
Updates and secrets
- Every release is signed. Unsigned, altered or downgraded packages are refused.
- Licence keys are stored hashed. We cannot read yours, and neither can anyone who steals our database.
- Certificate verification is never disabled, for any reason.
Signed releases
HTTPS proves you reached us. It doesn’t prove the file is ours.
A plugin update is remote code that WordPress will unpack and run with full privileges. If someone can substitute that file — through a compromised CDN, a hijacked domain, a proxy on a corporate network — they own every site that installs it.
So every Apaxon release is hashed and signed with a key that never leaves our platform. The matching public key is compiled into the plugin. Before WordPress is allowed to unpack anything, the site checks the signature itself.
If the signature doesn’t verify, the update is discarded — no matter what the connection said, and no matter what our servers claimed.
- Algorithm
- Ed25519, detached
- Signed over
- SHA-256 of the package
- Verified by
- The site, before install
- Key location
- Compiled into apaxon-core
- On failure
- Refused
What we haven’t done yet
The gaps, published on purpose.
A security page listing only strengths tells you nothing — every vendor has one. These are ours, and they’ll come off this list as they’re closed.
- Open
Independent penetration test
Scheduled before the first paid release. We will publish the summary.
- Open
WordPress.org review
Apaxon Core will go through the directory review process, which is a second pair of eyes.
- Open
Bug bounty
Not yet funded. Responsible disclosure is welcome in the meantime — details below.
Responsible disclosure
Found something? Tell us.
Email security@apaxon.co.uk with enough detail to reproduce it. We’ll acknowledge within two working days and keep you updated until it’s fixed.
We won’t pursue legal action against anyone reporting in good faith who avoids accessing other people’s data and gives us reasonable time to fix the issue before publishing.