Application & store audit
The application, the admin panel and the integrations. The report ranks findings by priority and estimated hours.
Security & data
We review your code and configuration, implement fixes and cover the technical side of GDPR, so your application runs reliably and stays compliant.

We secure your application so your data stays protected and your system is available 7 days a week. You also know exactly who can access your data, how long we keep backups and what happens in the first 24 hours after a breach is reported.
Overview
It usually comes down to small things: a publicly accessible code directory, an active admin account belonging to someone who left the team, a plugin its vendor no longer supports, or a staging environment with real data that shows up in search results. We check each of these points and close it before it becomes a problem, so your data stays protected.
We read the code and test how the application responds to data sent straight to the server, bypassing the user interface—that’s where the flaws you can’t spot at first glance usually hide. You get a list of issues, each with a file name, a description and a priority, so you know what to fix first and how long it will take.

XSS, SQL injection, IDOR and endpoints without permission checks.
Named accounts with MFA, secrets in a password manager, key rotation after every team change.
nginx, TLS 1.2/1.3, HSTS and auto-renewing Let's Encrypt certificates.
Logs kept for 90 days, backups for 30 days, a restore test every quarter.
Everything from a one-time audit and post-infection cleanup to ongoing maintenance of your environment.
The application, the admin panel and the integrations. The report ranks findings by priority and estimated hours.
We review the code by hand, because the most serious flaws sit in the application’s business logic—an automated scanner misses them, since on paper everything works.
We move passwords and access keys out of the code into a secure password manager, review permissions and rotate keys, so only the right people can access the system.
We configure the server (nginx, TLS 1.2/1.3, HSTS and CSP) and take the admin panel and internal services off the public internet, so connections are encrypted and access is limited to trusted people.
We store backups off the production server and encrypt them before upload. Once a quarter, we restore them on a clean machine, so you can be sure you’ll recover quickly after a failure.
We remove hidden backdoors from WordPress and close the exploited vulnerability, so the system stays clean and the infection doesn’t return.
Methodology
A checklist we work through every time, plus items that follow from how your specific application is built.
Findings
These are the issues that come up most often in our audits, so we check them first in your system.
.git directory, database dumps and ZIP archives at a public URLOur principles
We ask our own vendors the same questions before they get access to our infrastructure.
Only named accounts with SSH keys and MFA. Production access is limited to two named people, and everyone else works in the test environment. Accounts expire on the day the engagement ends. We keep secrets and .env files only in a password manager, with per-project access, outside the repository and messaging apps. We rotate keys after every change in the team.
In data centers within the EEA—Warsaw or Frankfurt. Server disks are encrypted, and traffic runs over TLS 1.2/1.3 with HSTS enforced. We encrypt backups before sending them to remote storage and keep their keys off the server they belong to. On request, we send you the list of subprocessors by name.
A full backup once a day, an incremental backup every hour, 30-day retention. Once a quarter, we restore a backup on a clean server and measure the restore time, because only a backup that has actually been restored proves it will work after a failure. We keep logs for 90 days, free of passwords, tokens and national ID numbers: we filter by field name before anything is written to disk.
Only in anonymized form. Before taking a dump, we run a script that anonymizes email addresses, phone numbers, ID document numbers and payment data, and the script stays in your repository. Production, staging and local environments each have their own databases, keys and email accounts. Staging sends no email to external addresses.
Every pull request is reviewed by a second person—nobody ships their own code to production unreviewed. CI runs tests, a static analyzer and a dependency scan (composer audit, npm audit). We update dependencies every month and patch vulnerabilities rated CVSS 9.0 or higher within 72 hours, weekends included.
Before each deployment, we take a database dump and tag the release. Rolling back takes a single command and less than a minute of downtime. Production deployments stop at 3 p.m. CET on Fridays. We connect monitoring to your Slack channel, so you see a 500 error alert in the same minute we do. We respond to critical incidents within 4 business hours.
We notify you of a suspected breach within 24 hours of detection, so you have time to report it to the data protection authority within the 72 hours required by GDPR. You receive the scope and categories of data affected, the time window, the list of systems and a description of what we have already contained. If there has been an intrusion, we secure the logs first, because they show how the attacker got in and let us close that route for good.
We use business tiers of AI tools, where the provider contractually excludes training models on the data we submit. We never paste secrets, .env files or production data into them. If your policy prohibits AI tools entirely, we work without them and confirm this before the project starts.
Retention
This table covers our infrastructure. Data in your systems stays with you.
| What | Where it’s stored | How it’s protected | How long |
|---|---|---|---|
| Code and change history | Your GitHub repository | Named accounts, MFA, mandatory code review | Working copy deleted 30 days after the engagement ends |
| Production database backups | Remote storage in the EEA | Encrypted before upload, key kept off the server | 30 days |
| Pre-deployment database dump | Deployment server | Encrypted disk, two named accounts | 14 days |
| Application logs | Application server | Fields with passwords, tokens and national ID numbers filtered out | 90 days |
| Secrets and configuration | Password manager, per-project access | Rotated after every team change | Until the engagement ends |
End of engagement
Within 30 days, we delete repository copies, database dumps and working files, and send you a dated written confirmation. You get a list of accounts to deactivate and keys to rotate. We sign a data processing agreement under Article 28 GDPR before we receive the first password, so the rules are clear from the very start of the engagement.
Transparency
We don’t hold ISO 27001 certification or a SOC 2 report, and we say so up front. If your procurement team requires either document, mention it in your first email, so you know right away whether working with us meets its requirements.
We don’t run penetration tests, because pentesting is a separate specialty with its own toolkit and its own liability. We refer you to a specialist firm, implement the fixes from its report and ask for a retest of the same points.
We don’t claim full GDPR compliance on your behalf, because compliance covers your organization as a whole—records of processing, legal bases, contracts. We’re responsible for the mechanisms on our side and for making sure the application respects them. A lawyer writes your privacy policy, and we supply the technical facts it rests on.
Run curl -I https://yourdomain.com and look for the Strict-Transport-Security header. We check every system we deploy this way—and you can check us the same way. On request, we send the following within the same business day:
Process
We document versions, dependencies, integrations and who has access to what. Together, we agree on what must stay untouched.
A code review and controlled abuse attempts on a copy of the environment. Each finding gets a priority and an hour estimate.
We deploy fixes outside production first, with regression tests, and agree on the order with you.
We recheck the same points and close the report. After that: monitoring, updates, backups.
Incident
First, we secure a snapshot of the system state and the logs, then revoke access and look for the entry point. We close the vulnerability before removing the malicious file, so the problem doesn’t come back. Restoring the service comes last: we change passwords and keys, and check for hidden accounts and injected redirects.
FAQ
We treat the scanner as the starting point for a proper review. The most serious flaws sit in the application’s business logic: a server request with no permission check, an ID that can be swapped, browser data accepted at face value. An automated tool misses them because on paper everything works, so we review the code by hand and show you what actually needs fixing.
Because an audit finding is, in practice, a manual for exploiting the vulnerability. Once published, it harms the system owner even after the fix, since the same bug usually sits in several places in the same codebase. That’s why we talk about vulnerability classes, our audit checklist and our own access rules—the same ones we apply to your project.
Yes. The report is yours, and it contains no clauses that would prevent this. Each item includes its location in the code and a description of the fix, so your own team or any contractor can handle it.
Email us before you clean anything up. Untouched files and logs let us determine how the attacker got in and close that route. We secure the current state, find the entry point, remove hidden backdoors and close the vulnerability, so the system returns to stable operation.
This page was last updated in August 2026. We mark substantive changes. If the retention period, the hosting provider or the breach reporting procedure changes, we say so explicitly here.
Email us what your application runs on and what concerns you. We reply within one business day with questions, then send an audit scope and a start date. If you suspect a breach, we get back to you the same day.