Lexs Security

You work on the product. We will safeguard it.

We test your applications, networks and cloud, giving you a full security plan to protect your product.

0 issues caught
1import { db } from "./db";
2import express from "express";
3
4const API_KEY = "sk_live_9f2a7c1e";⚠ Hardcoded secret
5const app = express();
6
7app.get("/users", async (req, res) => {
8 const id = req.query.id;
9 const sql = `SELECT * FROM users WHERE id = ${id}`;
10 const rows = await db.query(sql);
11 res.json(rows);
12});
13
14app.get("/invoices/:id", async (req, res) => {
15 const invoice = await db.invoices.find(req.params.id);
16 res.json(invoice);
17});
18
19app.post("/calc", (req, res) => {
20 res.send(eval(req.body.expr));
21});
22
23function hashPassword(pw) {
24 return md5(pw);
25}
26
27app.get("/search", (req, res) => {
28 res.send(`<h1>${req.query.q}</h1>`);
29});
30
31app.listen(3000);
32

What we test

Security testing built around real-world risk

Manual-first testing

Automated scanners are a starting point, not the deliverable. Our testers dig into logic flaws and chained attacks that tools miss.

Reports people can act on

Every finding comes with evidence, a clear risk rating and step-by-step remediation that your developers can follow.

Free retesting

Once you have remediated, we verify the fixes so you know the issues are actually closed.

Safe and authorised

Clear rules of engagement, agreed testing windows and careful handling of your data on every engagement.

How an engagement works

Scope

We agree what will be tested, how and when, so every test is authorised and there are no surprises.

Test

Our testers work through your systems by hand, chaining weaknesses together the way a real attacker would.

Report

You receive a clear report with an executive summary, risk-rated findings, evidence and step-by-step fixes.

Retest

Once your team has applied the fixes, we test again to confirm every issue is properly closed.

Ready to see what an attacker would see?

Start the conversation