Security approach

Strong encryption and layered data protection.

A detailed overview of how customer, subscriber and inquiry data is protected throughout CodeKits.shop, informed by Jonathan's cybersecurity studies and secure-development practice.

Authenticated application-level encryption

Sensitive personal fields are encrypted before MySQL storage with AES-256-GCM. Each value receives a fresh cryptographically random 96-bit nonce and a 128-bit authentication tag. GCM provides confidentiality and integrity: altered ciphertext fails authentication rather than silently producing changed data.

Purpose separation and key handling

HKDF-SHA-256 derives different encryption and lookup keys for each data purpose. The master key is kept outside the source code in restricted server configuration and must be backed up separately from the database. Versioned ciphertext supports controlled future changes, but key rotation and recovery still require tested operational procedures.

Pseudonymous operational records

Purchase, download and inquiry tables avoid readable personal fields where possible. They retain a pseudonymous marker while encrypted values are separated into a protected personal-data table. Keyed one-way hashes support record association without exposing the original identifier in normal database views.

Payments and fulfilment

Stripe Checkout handles card details, so CodeKits.shop does not store raw card numbers or card security codes. Stripe webhooks are signature-verified. Download links use cryptographically random tokens, while only token hashes are stored, and links have expiry and usage limits.

Minimal subscription and download data

Email subscriptions retain only the encrypted email, consent record and unsubscribe credential. Product downloads retain the encrypted buyer record, licence and fulfilment status, usage count and broad regional totals.

Subscriber addresses hidden from the dashboard

The normal subscriber dashboard does not decrypt or display email addresses. It shows a short pseudonymous fingerprint with consent and status information. When a newsletter is sent, a protected server-only mailing route decrypts active recipients in memory for delivery through the authenticated email provider. A server operator who also controls the encryption key could technically decrypt the records, so access control and key separation remain essential.

Application and transport safeguards

The application uses parameterized MySQL queries, server-only secrets, input length limits, rate limiting, bot traps, secure production builds and HTTPS deployment behind Nginx. Email transport uses authenticated SMTP over TLS when configured. Administrative mailbox security and server patching remain important parts of the overall system.

Honest security claims

No online system or encryption method can responsibly be described as perfectly secure or unbreakable. CodeKits.shop uses strong current controls, minimises collected data, reviews dependencies and documents limitations. Security must be maintained through updates, access control, monitoring, backups and tested incident response.

Responsible disclosure and security questions can be sent to [email protected].

FAQ

Support, deployment and security questions

Still have questions? Email us at [email protected]