Consulting Processes, requirements and architecture, before anything is built or bought. Bespoke development Web platforms and back offices designed around the way your teams work. Deployment and integration Systems that run and work together, with data entered only once. Maintenance and support Secure, up-to-date systems, with corrective and evolutionary maintenance.
Information systems for public and private organisations. All services
AI services Assessment, assistants, document automation, training and operation. MCP integration How AI connects to your systems, with permissions and an audit trail. AI in Europe Where your data is processed and which models we use. Founders programme A free assessment and a proof of concept paid at the end.
Use cases with guided demonstrations, by sector. All use cases
Source code audits Security flaws found in the code, each one confirmed by a person. Penetration testing Web applications, APIs, infrastructure and mobile apps, tested as an attacker would. Fixes and retesting We fix the flaws or support your team, and retest until they are closed. NIS2 and incident response Support with the Legal Framework for Cybersecurity, and 24/7 under contract.
See a sample report All cybersecurity services
Talk to us hello@datapoint.software

Source code audits

Reading the code like an attacker, before they do.

We review the source code of your applications for security flaws: with analysis tools, with help from artificial intelligence and, above all, with people who develop and maintain systems and confirm every finding before reporting it.

  • PHP, Python, JS/TS, Java and C#
  • Every finding confirmed by a person
  • Code handled in the EU

For decision-makers

What a code audit is, in plain language.

A penetration test attacks the application from the outside. An audit reads it from the inside, line by line where it matters, and finds flaws that no external attack would reveal.

  • It finds the cause, not just the symptom. Every finding gives the file, the line and the fix.
  • It sees what is not exposed. Internal features, permissions and integrations are reviewed too.
  • It happens before the problem. It can be done before the application goes live.
  • It makes the team stronger. Findings explain the pattern to avoid, not just the case.
  • From the inside

    We read the code, the dependencies and the configuration.

  • No false alarms

    We only report what we have confirmed.

  • With a fix

    Every flaw comes with the way to close it.

  • With a retest

    We confirm that the fix solved the problem.

What we look for

The flaws that most often open the door.

We follow the OWASP Top 10 categories and check the OWASP ASVS requirements that suit each application.

  • Authentication and sessions

    Passwords, account recovery, multi-factor authentication and session management.

  • Authorisation

    Whether each user can only reach their own data and the functions meant for them.

  • Injection and validation

    Outside data that reaches queries, commands or pages without validation.

  • Secrets in the code

    Keys, passwords and access credentials left in the code or in its history.

  • Cryptography

    Weak algorithms, poorly stored keys and sensitive data left unencrypted.

  • File uploads

    Uploaded files that can be executed, overwrite others or exhaust resources.

  • Logging and errors

    Errors that reveal internal information and important actions that go unrecorded.

  • Dependencies

    Libraries and components with known flaws, as in the PHP2Shell case.

How we work

From tools to people, in six steps.

  1. Preparation

    Access to the repository, the architecture and the critical flows, agreed with your team.

    1 to 2 days

  2. Automated analysis

    Static and dependency analysis, to cover all the code and find known flaws.

    1 to 2 days

  3. AI-assisted analysis

    AI tools follow data from where it enters to sensitive operations and flag candidates.

    1 to 3 days

  4. Manual review

    Authentication, permissions, payments and personal data reviewed by hand by people who know the patterns.

    3 to 10 days

  5. Confirmation

    Every candidate is reproduced in a test environment; anything not confirmed stays out of the report.

    1 to 3 days

  6. Report and presentation

    Findings by severity, with a proposed fix, presented to the technical team and to management.

    1 to 2 days

Illustrative example

One finding, from problem to fix.

Every finding in the report explains what is wrong, where, why it matters and how to fix it. See what a full report looks like.

  • A description of the problem, clear for those who code and those who decide.
  • The exact location: file, line and affected feature.
  • Evidence that the flaw exists, reproduced in a test environment.
  • The impact on the service and the data, and severity measured with CVSS 4.0.
  • A proposed fix, with the code before and after.
  • The retest status, updated when the fix is applied.
// Finding A-03 · Severity: high
// File: orders/view.php, line 18
// Problem: the identifier comes from the request unvalidated
// and nobody checks who owns the record.
$sql = "SELECT * FROM orders WHERE id = " . $_GET['id'];
$order = $db->query($sql)->fetch();

// Fix: a parameterised query and an ownership check.
$stmt = $db->prepare(
    'SELECT * FROM orders WHERE id = ? AND customer_id = ?'
);
$stmt->execute([$_GET['id'], $user->id]);
$order = $stmt->fetch();

Languages and tools

The technologies we work with every day.

We audit the languages and frameworks we also use to develop and maintain systems.

  • PHP, including Laravel, Symfony and WordPress.
  • Python, including Django, Flask and FastAPI.
  • JavaScript and TypeScript, on the server with Node.js and in web applications.
  • Java, including Spring.
  • C#, including .NET.
  • Semgrep

    Static analysis of the code, with public rules and our own.

  • OWASP Dependency-Check

    Dependencies with known, published vulnerabilities.

  • Trivy

    Dependencies, containers and configuration files.

  • AI with human review

    Suspicious data paths, always confirmed by a person.

When it makes sense

The right moments for an audit.

  • Before going live

    Fixing a flaw before launch costs far less than after it has been exploited.

  • When taking over a system

    Before taking on the maintenance of an application built by another supplier.

  • After a major change

    A new integration, a new module or a change of framework.

  • In the supply chain

    To assess the security of suppliers' software, as NIS2 requires.

What you receive

A report that is useful to those who decide and those who fix.

The audit only ends when the important flaws are closed.

Request an audit

  • An executive summary for management, with the level of risk and the priorities.
  • A technical report with every finding, its evidence and the proposed fix.
  • A presentation meeting with your technical team or your supplier.
  • Fixes made by us or by your team, as you prefer.
  • A retest and final report with the status of every finding.

Frequently asked questions

About source code audits.

Do you need access to all the code?

We need access to the code of the application being audited and its configuration, ideally to the repository with its history. The history helps find secrets that were deleted from the code but are still stored.

Does our code leave our premises?

Only if you agree. The code is handled in the European Union, through our partners, or on your premises, deleted at the end of the work and never used to train AI models.

How long does an audit take?

It depends on the size and complexity of the application. A medium-sized application usually takes two to three weeks, from access to the code to the report.

Do you audit code built by another supplier?

Yes, with the system owner's authorisation. We can present the findings to the supplier and support them with the fixes, or make the fixes ourselves when the contract and the licence allow it.

Does an audit replace a penetration test?

No, they complement each other. The audit finds flaws in the code; the penetration test confirms what an attacker can exploit in the running application, including the server configuration.

Want to know what your code is hiding?

Tell us which application you want audited and we will propose a fixed scope and price.

Accessibility

Read aloud

Text size

100%

Display

Motion and navigation

Accessibility statement
Talk to us