<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://ofriperetz.dev</loc>
<lastmod>2026-08-23T19:24:41.179Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles</loc>
<lastmod>2026-08-23T19:24:41.179Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://ofriperetz.dev/stats</loc>
<lastmod>2026-08-23T19:24:41.179Z</lastmod>
<priority>0.5</priority>
</url>
<url>
<loc>https://ofriperetz.dev/analytics</loc>
<lastmod>2026-08-23T19:24:41.179Z</lastmod>
<priority>0.4</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/crypto-misuse-taxonomy</loc>
<lastmod>2026-08-01T09:00:32.914Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/abandoned-incumbent-map</loc>
<lastmod>2026-07-20T04:45:01.282Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/we-were-wrong-about-sls-remove</loc>
<lastmod>2026-07-20T04:44:23.176Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/composite-benchmark-anatomy</loc>
<lastmod>2026-07-20T04:43:35.363Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/claims-registry-evidence-framework</loc>
<lastmod>2026-07-20T04:43:26.069Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/how-to-design-a-ground-truth-corpus</loc>
<lastmod>2026-07-20T04:43:02.552Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/valid-vs-reliable-metrics</loc>
<lastmod>2026-07-19T23:47:32.870Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/static-analysis-vs-sast-vs-linting</loc>
<lastmod>2026-07-19T23:47:10.301Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/sample-size-and-statistical-power</loc>
<lastmod>2026-07-19T23:46:47.548Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/proxy-metrics</loc>
<lastmod>2026-07-19T23:46:24.672Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/precision-recall-f1-for-static-analysis</loc>
<lastmod>2026-07-19T23:45:00.088Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/taint-vs-heuristic-detection</loc>
<lastmod>2026-07-19T23:41:25.712Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/statistical-significance-p-value</loc>
<lastmod>2026-07-19T23:41:17.265Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/reproducibility-vs-replicability</loc>
<lastmod>2026-07-19T23:40:53.546Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/ranking-vs-measuring</loc>
<lastmod>2026-07-19T23:40:44.295Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/owasp-top-10-explained</loc>
<lastmod>2026-07-19T23:40:20.007Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/ground-truth-in-security-testing</loc>
<lastmod>2026-07-19T23:40:10.308Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/cwe-taxonomy-explained</loc>
<lastmod>2026-07-19T23:39:21.275Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/cvss-scores-explained</loc>
<lastmod>2026-07-19T23:38:05.153Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/composite-scores-and-weighting</loc>
<lastmod>2026-07-19T23:38:02.250Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/confusion-matrix-tp-fp-fn-tn</loc>
<lastmod>2026-07-19T23:36:49.093Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/inter-rater-agreement-cohens-kappa</loc>
<lastmod>2026-07-18T23:35:02.968Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/i-built-what-i-benchmark-heres-how-i-try-not-to-cheat</loc>
<lastmod>2026-07-18T23:34:58.250Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/goodharts-law-explained</loc>
<lastmod>2026-07-18T23:34:55.443Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/different-metrics-for-different-package-types</loc>
<lastmod>2026-07-18T23:34:39.658Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/bias-in-measurement</loc>
<lastmod>2026-07-18T23:34:28.047Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/base-rate-problem-explained</loc>
<lastmod>2026-07-18T23:34:23.463Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/i-audited-203-of-our-own-eslint-security-rules-16-mislabel-their-own-cvss-score</loc>
<lastmod>2026-07-06T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/no-hardcoded-credentials-entropy-isnt-enough</loc>
<lastmod>2026-07-04T15:25:50.707Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/three-sql-injection-patterns-node-postgres-eslint</loc>
<lastmod>2026-05-31T04:35:32.886Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/claude-vs-gemini-4-security-domains-dead-heat</loc>
<lastmod>2026-05-31T03:39:06.766Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-eslint-plugin-mongodb-security</loc>
<lastmod>2026-05-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/circular-dependencies-in-javascript-explained</loc>
<lastmod>2026-05-30T21:46:36.937Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/payload-508-circular-dependency-cycles</loc>
<lastmod>2026-05-30T19:19:59.485Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/math-random-api-keys</loc>
<lastmod>2026-05-30T05:05:10.699Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/claude-vs-gemini-nestjs-security-same-prompt-different-errors</loc>
<lastmod>2026-05-30T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/claude-wrote-nestjs-service-eslint-found-6-security-holes</loc>
<lastmod>2026-05-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/eslint-plugin-import-38m-downloads-heres-what-it-still-gets-wrong</loc>
<lastmod>2026-05-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/import-next-no-cycle-reported-0-cycles-nextjs-we-found-why-and-fixed-it</loc>
<lastmod>2026-05-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/i-inherited-a-nestjs-codebase-the-first-lint-run-found-6-vulnerabilities</loc>
<lastmod>2026-05-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/eslint-security-fn-fp-benchmark</loc>
<lastmod>2026-05-25T14:46:57.094Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/benchmark-17-eslint-security-plugins-compared</loc>
<lastmod>2026-05-25T14:27:23.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/no-cycle-cache-poisoning-at-scale</loc>
<lastmod>2026-05-24T03:07:43.087Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/aggregate-benchmarks-lie-heres-what-700-ai-functions-look-like-by-security-domain</loc>
<lastmod>2026-05-17T15:40:50.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/what-ground-truth-caught-that-unit-tests-missed</loc>
<lastmod>2026-05-14T05:18:10.112Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/we-ranked-5-ai-models-by-security-the-leaderboard-is-wrong</loc>
<lastmod>2026-07-05T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/the-ai-hydra-problem-fix-one-ai-bug-get-two-more</loc>
<lastmod>2026-02-08T17:16:17.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/benchmark-microsoft-sdl-vs-interlace</loc>
<lastmod>2026-02-08T03:37:21.039Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/benchmark-sonarjs-vs-interlace</loc>
<lastmod>2026-02-08T03:31:07.438Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/eslint-plugin-security-is-unmaintained-heres-what-nobody-tells-you-96h</loc>
<lastmod>2026-02-06T06:54:40.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/i-let-claude-write-60-functions-65-75-had-security-vulnerabilities</loc>
<lastmod>2026-07-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/postgresql-copy-from-exploit-filesystem-access</loc>
<lastmod>2026-01-11T10:21:28.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/n-plus-1-insert-loop-api-performance</loc>
<lastmod>2026-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/searchpath-hijacking-postgresql-attack</loc>
<lastmod>2026-07-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-with-eslint-plugin-express-security</loc>
<lastmod>2026-02-05T05:33:03.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/nestjs-guards-pipes-throttlers-6-eslint-rules</loc>
<lastmod>2026-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-with-eslint-plugin-lambda-security</loc>
<lastmod>2026-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-eslint-plugin-browser-security</loc>
<lastmod>2026-01-11T10:21:38.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-eslint-plugin-jwt</loc>
<lastmod>2026-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-eslint-plugin-node-security</loc>
<lastmod>2026-02-03T04:59:37.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/eslint-plugin-import-vs-eslint-plugin-import-next-up-to-100x-faster</loc>
<lastmod>2026-02-05T05:32:55.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-eslint-plugin-import-next</loc>
<lastmod>2026-01-02T14:42:42.088Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-eslint-plugin-vercel-ai-security</loc>
<lastmod>2026-01-11T10:21:46.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/transaction-race-conditions-begin-on-pool</loc>
<lastmod>2026-01-11T10:21:47.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/database-connection-leak-production-outage</loc>
<lastmod>2026-01-11T10:21:49.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-eslint-plugin-secure-coding</loc>
<lastmod>2026-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/getting-started-eslint-plugin-pg</loc>
<lastmod>2026-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/mapping-your-codebase-to-owasp-top-10-with-247-eslint-rules</loc>
<lastmod>2026-02-05T04:58:59.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/the-30-minute-security-audit-onboarding-a-new-codebase</loc>
<lastmod>2026-02-05T05:33:15.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/the-security-engineer-interview-cheat-sheet-for-javascript-developers-pgn</loc>
<lastmod>2026-02-05T05:33:13.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/the-jwt-algorithm-none-attack-the-vulnerability-in-1-line-of-code-d9g</loc>
<lastmod>2026-02-05T05:33:16.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/3-lines-of-code-to-hack-your-vercel-ai-app-and-1-line-to-fix-it-jo</loc>
<lastmod>2026-02-05T05:33:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/sql-injection-node-postgres-pattern</loc>
<lastmod>2026-01-11T10:22:01.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/hardcoded-secrets-ai-agents-autofix</loc>
<lastmod>2026-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/why-eslint-plugin-import-takes-45-seconds</loc>
<lastmod>2025-12-31T05:34:31.177Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/your-eslint-security-plugin-is-missing-80-of-vulnerabilities-i-have-proof</loc>
<lastmod>2026-01-11T10:22:06.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/securing-ai-agents-in-the-vercel-ai-sdk</loc>
<lastmod>2026-02-05T05:33:12.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/100-owasp-llm-top-10-coverage-for-vercel-ai-sdk</loc>
<lastmod>2026-07-19T06:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/vercel-ai-sdk-prompt-injection-vulnerability</loc>
<lastmod>2026-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/client-storage-trust-boundary</loc>
<lastmod>2026-08-23T19:24:41.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/design-system-token-drift-eslint</loc>
<lastmod>2026-08-23T19:24:41.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ofriperetz.dev/articles/dom-sink-taxonomy</loc>
<lastmod>2026-08-23T19:24:41.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
