DEV Community

Ofri Peretz profile picture

Ofri Peretz

IC5/M2 Leader @ Snappy US. Building revenue APIs & AI-ready ESLint plugins. Expert in distributed teams, scalable infra, and fostering a culture of craftsmanship.

Education

CS

Work

Engineering Manager @ Snappy | Open Source Developer | ESLint for AI tools

Getting Started with eslint-plugin-mongodb-security

Getting Started with eslint-plugin-mongodb-security

1
Comments
3 min read

Want to connect with Ofri Peretz?

Create an account to connect with Ofri Peretz. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Three SQL Injection Patterns That Still Ship in Node.js — And the ESLint Rule That Catches Them

Three SQL Injection Patterns That Still Ship in Node.js — And the ESLint Rule That Catches Them

Comments
5 min read
Claude vs Gemini Across 4 Security Domains: A Dead Heat — and the Hardening 63% of AI Code Skips

Claude vs Gemini Across 4 Security Domains: A Dead Heat — and the Hardening 63% of AI Code Skips

4
Comments 4
8 min read
The Bug That Passes Every Toolchain Check: Circular Dependencies in JavaScript

The Bug That Passes Every Toolchain Check: Circular Dependencies in JavaScript

1
Comments 1
7 min read
Payload CMS Has 508 Circular Dependencies. Next.js Has 17. Here's Why They Form in Every Large JS Codebase.

Payload CMS Has 508 Circular Dependencies. Next.js Has 17. Here's Why They Form in Every Large JS Codebase.

Comments
10 min read
Math.random() Is Not Secure. I Found It Generating API Keys in a 44K-Star Repo.

Math.random() Is Not Secure. I Found It Generating API Keys in a 44K-Star Repo.

4
Comments
5 min read
Same NestJS Prompt. Claude Got 6 Security Errors. Gemini Got 2. Here's What Both Got Wrong.

Same NestJS Prompt. Claude Got 6 Security Errors. Gemini Got 2. Here's What Both Got Wrong.

2
Comments
6 min read
5 Cycles Invisible in 14,556 Files. The Cache Bug That Hid Them.

5 Cycles Invisible in 14,556 Files. The Cache Bug That Hid Them.

1
Comments
7 min read
import-next/no-cycle Reported 0 Cycles on Next.js. We Found Why — and Fixed It.

import-next/no-cycle Reported 0 Cycles on Next.js. We Found Why — and Fixed It.

1
Comments
5 min read
Claude Wrote a NestJS Service. TypeScript Was Happy. ESLint Found 6 Security Holes.

Claude Wrote a NestJS Service. TypeScript Was Happy. ESLint Found 6 Security Holes.

3
Comments 7
10 min read
I Inherited a NestJS Codebase. The First Lint Run Found 6 Vulnerabilities.

I Inherited a NestJS Codebase. The First Lint Run Found 6 Vulnerabilities.

1
Comments
5 min read
I Benchmarked 17 ESLint Security Plugins. Only One Found Every Vulnerability.

I Benchmarked 17 ESLint Security Plugins. Only One Found Every Vulnerability.

Comments
9 min read
no-cycle finds 0 cycles in next.js (and other lies caches tell you)

no-cycle finds 0 cycles in next.js (and other lies caches tell you)

Comments
5 min read
Aggregate Benchmarks Lie. Here's What 700 AI Functions Look Like by Security Domain.

Aggregate Benchmarks Lie. Here's What 700 AI Functions Look Like by Security Domain.

Comments
12 min read
What ground truth caught that unit tests missed: 3 real bugs in 9 flagship lint rules

What ground truth caught that unit tests missed: 3 real bugs in 9 flagship lint rules

Comments
7 min read
We Ranked 5 AI Models by Security. The Leaderboard Is Wrong.

We Ranked 5 AI Models by Security. The Leaderboard Is Wrong.

2
Comments
9 min read
The AI Hydra Problem: Fix One AI Bug, Get Two More

The AI Hydra Problem: Fix One AI Bug, Get Two More

Comments
12 min read
Microsoft's SDL ESLint Plugin Caught 3 of My Node Vulns; the Domain Plugins Caught 46 — It's a Frontend Tool

Microsoft's SDL ESLint Plugin Caught 3 of My Node Vulns; the Domain Plugins Caught 46 — It's a Frontend Tool

1
Comments
4 min read
SonarJS Has 269 Rules and Found 13 Security Issues Where the Domain Plugins Found 46 — It's a Quality Linter

SonarJS Has 269 Rules and Found 13 Security Issues Where the Domain Plugins Found 46 — It's a Quality Linter

Comments
4 min read
eslint-plugin-security Is the 14-Rule Generic Floor. Here's the Domain Depth to Layer on Top.

eslint-plugin-security Is the 14-Rule Generic Floor. Here's the Domain Depth to Layer on Top.

Comments
4 min read
I Let Claude Write 80 Functions. 65-75% Had Security Vulnerabilities.

I Let Claude Write 80 Functions. 65-75% Had Security Vulnerabilities.

4
Comments 4
12 min read
PostgreSQL's COPY FROM Can Read /etc/passwd Into Your Database. One ESLint Rule Blocks It.

PostgreSQL's COPY FROM Can Read /etc/passwd Into Your Database. One ESLint Rule Blocks It.

Comments
5 min read
One INSERT Loop Made Our CSV Import 500x Slower. One ESLint Rule Catches It Before It Ships.

One INSERT Loop Made Our CSV Import 500x Slower. One ESLint Rule Catches It Before It Ships.

1
Comments 3
4 min read
search_path Hijacking: the PostgreSQL Attack That Turns SELECT * FROM users Into the Attacker's Table

search_path Hijacking: the PostgreSQL Attack That Turns SELECT * FROM users Into the Attacker's Table

Comments
4 min read
Your Express App Has No Helmet, No Rate Limit, and a ReDoS in Its Routes. 10 ESLint Rules Catch the Middleware You Forgot.

Your Express App Has No Helmet, No Rate Limit, and a ReDoS in Its Routes. 10 ESLint Rules Catch the Middleware You Forgot.

Comments
5 min read
NestJS Hands You Guards, Pipes, and Throttlers. Your Controllers Ship Without Them. 6 ESLint Rules Catch What You Forgot.

NestJS Hands You Guards, Pipes, and Throttlers. Your Controllers Ship Without Them. 6 ESLint Rules Catch What You Forgot.

Comments
5 min read
An SSRF in Your Lambda Steals the Execution Role. Action: '*' Hands Over the Account. 14 ESLint Rules Break the Chain.

An SSRF in Your Lambda Steals the Execution Role. Action: '*' Hands Over the Account. 14 ESLint Rules Break the Chain.

Comments
6 min read
Your Frontend Stores JWTs in localStorage and Posts to '*'. 45 ESLint Rules Catch What the Backend Audit Misses.

Your Frontend Stores JWTs in localStorage and Posts to '*'. 45 ESLint Rules Catch What the Backend Audit Misses.

Comments
6 min read
jsonwebtoken Will Verify a Token Signed With algorithm: none. These 13 ESLint Rules Stop It.

jsonwebtoken Will Verify a Token Signed With algorithm: none. These 13 ESLint Rules Stop It.

Comments
5 min read
MD5, exec(), and Zip Slip: 34 ESLint Rules That Fail Your Node.js CI Before They Ship.

MD5, exec(), and Zip Slip: 34 ESLint Rules That Fail Your Node.js CI Before They Ship.

Comments
6 min read
Performance at Scale: The Static Analysis Standard for 100x Faster Linting

Performance at Scale: The Static Analysis Standard for 100x Faster Linting

Comments
2 min read
Your Vercel AI SDK Agent Has 19 Attack Surfaces. Here's an ESLint Rule for Each.

Your Vercel AI SDK Agent Has 19 Attack Surfaces. Here's an ESLint Rule for Each.

Comments
10 min read
BEGIN on a Postgres Pool Scatters Your Transaction Across Connections. One ESLint Rule Stops It.

BEGIN on a Postgres Pool Scatters Your Transaction Across Connections. One ESLint Rule Stops It.

Comments
4 min read
A Missing client.release() Exhausted Our Postgres Pool at 3 AM. The ESLint Rule That Catches It.

A Missing client.release() Exhausted Our Postgres Pool at 3 AM. The ESLint Rule That Catches It.

Comments
4 min read
A Hardcoded sk_live_ Key Passes Code Review. It Won't Pass These 27 ESLint Rules.

A Hardcoded sk_live_ Key Passes Code Review. It Won't Pass These 27 ESLint Rules.

Comments
7 min read
pg Lets You Concatenate SQL, Hijack search_path, and Leak Every Connection. 13 ESLint Rules Say No.

pg Lets You Concatenate SQL, Hijack search_path, and Leak Every Connection. 13 ESLint Rules Say No.

Comments
6 min read
8 of the OWASP Top 10 Are ESLint Rules. 2 Aren't — and That's the Honest Audit Answer.

8 of the OWASP Top 10 Are ESLint Rules. 2 Aren't — and That's the Honest Audit Answer.

1
Comments
8 min read
13 Security Questions Every JavaScript Interview Asks — and the ESLint Rule That Answers Each in CI

13 Security Questions Every JavaScript Interview Asks — and the ESLint Rule That Answers Each in CI

Comments
5 min read
The JWT alg:none Attack: Change One Header Field, Forge an Admin Token. One ESLint Rule Blocks It.

The JWT alg:none Attack: Change One Header Field, Forge an Admin Token. One ESLint Rule Blocks It.

1
Comments
3 min read
'3 Lines of Vercel AI SDK Code Are a Prompt-Injection Hole — and "Just Sanitize It" Won''t Close It'

'3 Lines of Vercel AI SDK Code Are a Prompt-Injection Hole — and "Just Sanitize It" Won''t Close It'

Comments
4 min read
Your node-postgres Data Layer Fails 4 Ways in Production. SQL Injection Is Only the First.

Your node-postgres Data Layer Fails 4 Ways in Production. SQL Injection Is Only the First.

Comments
4 min read
AI Coding Assistants Hardcode Secrets. This ESLint Rule Catches Them — in a Format the AI Can Auto-Fix.

AI Coding Assistants Hardcode Secrets. This ESLint Rule Catches Them — in a Format the AI Can Auto-Fix.

Comments
5 min read
Post-Mortem: Why ESLint Performance Failed (And the 100x Fix)

Post-Mortem: Why ESLint Performance Failed (And the 100x Fix)

Comments
2 min read
Same Vulnerable File, 4 Linters: Oxlint Native Caught 1, eslint-plugin-security 21, Interlace 46

Same Vulnerable File, 4 Linters: Oxlint Native Caught 1, eslint-plugin-security 21, Interlace 46

Comments
5 min read
Your Vercel AI SDK Agent Can Delete Your Database. 5 ESLint Rules That Gate Every Tool Call.

Your Vercel AI SDK Agent Can Delete Your Database. 5 ESLint Rules That Gate Every Tool Call.

Comments
5 min read
Your Vercel AI SDK App vs the OWASP LLM Top 10: 8 Categories ESLint Catches in CI — and 2 It Honestly Can't.

Your Vercel AI SDK App vs the OWASP LLM Top 10: 8 Categories ESLint Catches in CI — and 2 It Honestly Can't.

Comments
4 min read
Your Vercel AI SDK App Has a Prompt Injection Vulnerability — in 1 of 3 Places. Here's the ESLint Rule for Each.

Your Vercel AI SDK App Has a Prompt Injection Vulnerability — in 1 of 3 Places. Here's the ESLint Rule for Each.

Comments
4 min read
loading...