[{"data":1,"prerenderedAt":756},["ShallowReactive",2],{"tool-detect-secrets-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":13,"about":20,"sources":29,"cover":57,"og":58,"expertise":59,"locales":60,"lang":63,"title":64,"description":65,"coverAlt":66,"url":32,"pricing":67,"kind":68,"metaTitle":69,"takeaways":70,"faq":76,"toc":89,"blocks":114,"others":549},"detect-secrets","2026-08-03",10,"security",[9,10,11,12],"Secret scanning","Pre-commit","Git","DevSecOps",[4,14,15,16,17,18,19],"detect-secrets vs gitleaks","detect-secrets baseline","secret scanning tools comparison","gitleaks vs trufflehog","rotate leaked api keys","pre-commit secret hook",[21,24,26],{"name":22,"url":23},"Yelp","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FYelp",{"name":11,"url":25},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGit",{"name":27,"url":28},"Apache License","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FApache_License",[30,33,36,39,42,45,48,51,54],{"title":31,"url":32},"Yelp\u002Fdetect-secrets: README and usage","https:\u002F\u002Fgithub.com\u002FYelp\u002Fdetect-secrets",{"title":34,"url":35},"Yelp\u002Fdetect-secrets: CHANGELOG (v1.5.0, 6 May 2024)","https:\u002F\u002Fgithub.com\u002FYelp\u002Fdetect-secrets\u002Fblob\u002Fmaster\u002FCHANGELOG.md",{"title":37,"url":38},"Yelp\u002Fdetect-secrets: plugin and verification documentation","https:\u002F\u002Fgithub.com\u002FYelp\u002Fdetect-secrets\u002Fblob\u002Fmaster\u002Fdocs\u002Fplugins.md",{"title":40,"url":41},"detect-secrets 1.5.0 on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Fdetect-secrets\u002F",{"title":43,"url":44},"Yelp\u002Fdetect-secrets: releases","https:\u002F\u002Fgithub.com\u002FYelp\u002Fdetect-secrets\u002Freleases",{"title":46,"url":47},"Gitleaks README (MIT, Go)","https:\u002F\u002Fgithub.com\u002Fgitleaks\u002Fgitleaks",{"title":49,"url":50},"TruffleHog README (AGPL-3.0, credential verification)","https:\u002F\u002Fgithub.com\u002Ftrufflesecurity\u002Ftrufflehog",{"title":52,"url":53},"GitHub Docs: About secret scanning","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning\u002Fintroduction\u002Fabout-secret-scanning",{"title":55,"url":56},"betterleaks\u002Fbetterleaks","https:\u002F\u002Fgithub.com\u002Fbetterleaks\u002Fbetterleaks","\u002Fimages\u002Fblog\u002Fdetect-secrets\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fdetect-secrets\u002Fog.jpg","ai-engineer",[61,62,63],"en","de","hu","detect-secrets: titkos kulcsok vizsgálata becommitolt baseline-nal","Mit csinál a detect-secrets, miben különbözik a becommitolt baseline a gitleakstól és a TruffleHogtól, miért számít az ellenőrző hívás a CI-ban, és hol ér véget a tool.","Diagram: fájlok haladnak a transzformereken, plugineken, szűrőkön és az ellenőrzésen egy JSON baseline-ba, amely a pre-commit kaput és az audit menetet táplálja.","Apache-2.0","Secret detection","detect-secrets: vizsgálat baseline-nal · Balázs Csorba",[71,72,73,74,75],"A detect-secrets elfogadja, hogy a repóban már lehetnek titkok. A becommitolt .secrets.baseline rögzíti a találatokat, és a hook csak az újat blokkolja, tehát a bevezetéshez nem kell előbb rendrakási projekt.","A pontosság nem jobb regexekből, hanem jelölésekből jön: a detect-secrets audit a --stats kapcsolóval a mérés, a --exclude-files, --exclude-lines, --word-list és a két entrópia-küszöb pedig a tekerők.","Az ellenőrzés alapból be van kapcsolva, és hálózaton keresztül szólítja meg a kibocsátó szolgáltatást. Ez erősen csökkenti a zajt, és elszigetelt CI-futónál határozott döntést kíván.","Az 2024. május 6-i 1.5.0 verzió még mindig a legfrissebb kiadás, a Python 3.13 támogatás pedig kiadás nélkül ütközik a masteren. Pineld a verziót, és ne építs új automatizálást új detektorokra.","Új repóhoz a gitleaks az egyszerűbb választás, a TruffleHog pedig az, amely megerősíti, hogy él-e még egy kulcs. A detect-secrets birtokolja az audit- és rotálási munkafolyamatot, amelyet a másik kettő nem kínál.",[77,80,83,86],{"q":78,"a":79},"Mi az a .secrets.baseline, és miért commitolják be?","Egy JSON-fájl, amely felsorolja az összes aktuálisan talált titkot, a plugin- és szűrőbeállításokkal, valamint találatonként egy lenyomattal együtt. A becommitolás stabil hivatkozást ad a pre-commit hooknak: ami már szerepel a listán, azt figyelmen kívül hagyja, ami új, az megbuktatja a commitot. Ugyanakkor ez a migrációs lista is, mert a detect-secrets audit megjelöli, mely bejegyzések valódi titkok.",{"q":81,"a":82},"A detect-secrets megtalálja a titkokat a git historyban?","Nem, és ez szándékos: a munkafában verziózott fájlokat vizsgálja, így egy évekkel ezelőtt commitolt, majd eltávolított hitelesítő adatot nem lát. A README ezt azzal indokolja, hogy nem kell minden futáskor végigmenni a historyn. A historyhoz külön, egyszeri gitleaks- vagy TruffleHog-scan kell, majd egy átírás, ha a titok valaha érvényes volt.",{"q":84,"a":85},"Mit csinál a --only-verified és a --no-verify?","Alapértelmezés szerint a tool minden találatot ellenőrizni próbál úgy, hogy rákérdez a kibocsátó szolgáltatásnál, a keyhacks projekt technikáit használva. A --only-verified csak a szolgáltatás által megerősített hitelesítő adatokat jelenti, ami pontos, de kimenő hálózati hozzáférést kíván; a -n (--no-verify) teljesen kikapcsolja az ellenőrzést, és ezt kell elszigetelt CI-futónál.",{"q":87,"a":88},"Még karbantartják a detect-secrets-et?","Stabil, de csendes: az 2024. május 6-i 1.5.0 egyszerre a legfrissebb kiadás a PyPI-n és a legújabb GitHub-tag. A commitok ritkán érkeznek, a masteren legutóbbi 2026. áprilisi, a Python 3.13 támogatás pedig 2025 januárjában került be kiadás nélkül. Kezeld karbantartottként, ne fejlesztettként, pineld az 1.5.0-ot, és olvasd a masteret, ha az újabb Python kell.",[90,93,96,99,102,105,108,111],{"id":91,"title":92},"what-it-is","Mi ez",{"id":94,"title":95},"how-it-works","Hogyan működik",{"id":97,"title":98},"getting-started","Első lépések",{"id":100,"title":101},"signal-vs-noise","Jel és zaj",{"id":103,"title":104},"rotation-workflow","A rotálási munkafolyamat",{"id":106,"title":107},"where-it-shingles","Hol csúszik el",{"id":109,"title":110},"verdict","Foglalat",{"id":112,"title":113},"sources","Források",[115,119,128,131,147,226,227,230,239,242,253,254,265,267,270,272,287,302,303,306,357,370,371,382,395,398,399,402,494,497,498,501,513,519,520],{"type":116,"content":117},"paragraph",[118],"A detect-secrets a Yelp Apache-2.0 licenceű titkos kulcsfigyelője Git-repókhoz, és az, ami megkülönbözteti minden mástól, a baseline. Elfogadod, hogy a repóban már lehetnek titkok, rögzíted, mi van benne, és onnantól csak az újat blokkolja. Ez szándékosan lehangolt tervezés, és egy olyan kódbázisnál, amelyre senkinek nincs ideje rendrakni, továbbra is ez a jó forma. A probléma a karbantartottság: az 1.5.0-s verzió 2024. május 6-áról származik és még mindig a legfrissebb kiadás, a masteren landoló utolsó commit pedig 2026 áprilisában volt.",{"type":116,"content":120},[121,122,127],"Ugyanoda tartozik, mint a gitleaks és a TruffleHog: a commit vagy a pipeline elé. Nem secret manager, hanem keres, blokkol, és átad egy listát a rotáláshoz. A GitHub saját secret scanningje csak a GitHubon tárolt repókat fedi le, a privát repókhoz GitHub Secret Protection kell, GitLabhez, Bitbuckethez vagy saját szerverhez pedig semmi. Hogy illeszkedik egy szkenner az ügynökök sandboxolásának történetébe, arról a ",{"tag":123,"to":124,"children":125},"link","\u002Fblog\u002Fsandboxing-coding-agents-ci-checklist",[126],"coding agentek sandboxolása a CI-ban"," cikk szól.",{"type":129,"level":130,"id":91,"text":92},"heading",2,{"type":116,"content":132},[133,134,138,139,142,143,146],"A csomag három parancsot ad, és a README szokatlanul egyértelmű arról, melyik mikor kell. A ",{"tag":135,"children":136},"code",[137],"detect-secrets scan"," létrehozza vagy frissíti a baseline-t, a ",{"tag":135,"children":140},[141],"detect-secrets-hook"," egy fájllistát ellenőriz vele, és nem nulla kilépési kóddal tér vissza, ha bármi új jelenik meg, a ",{"tag":135,"children":144},[145],"detect-secrets audit"," pedig egy interaktív menet, amely valódi titkosnak vagy zajnak jelöli a találatokat, és ezeket a jelöléseket visszaírja a baseline-ba.",{"type":148,"ordered":149,"items":150},"list",false,[151,157,170,186,203,208,217],[152,156],{"tag":153,"children":154},"strong",[155],"Python, Apache-2.0, 1.5.0 verzió",", 2024. május 6-án jelent meg, 4.649 csillaggal és 573 forkkal. A PyPI-osztályozó production\u002Fstable értéket ír, ami inkább az API-ra vonatkozik, mint az ütemtervre.",[158,161,162,165,166,169],{"tag":153,"children":159},[160],"27 detektor"," listáz a ",{"tag":135,"children":163},[164],"--list-all-plugins"," kapcsolóval, három családban: regex szabályok az AWS, GitHub, GitLab, Slack, Stripe, OpenAI, npm, PyPI, Telegram, Twilio és privát kulcsok számára; entrópia-detektorok Base64 és hex stringekre; és egy kulcsszó-detektor, amely az értéket figyelmen kívül hagyja, és a ",{"tag":135,"children":167},[168],"password"," jellegű nevekre való hozzárendeléseket jelöli.",[171,174,175,178,179,178,182,185],{"tag":153,"children":172},[173],"A szűrők a pluginek után futnak",", és döntik el, mi marad: ",{"tag":135,"children":176},[177],"--exclude-files",", ",{"tag":135,"children":180},[181],"--exclude-lines",{"tag":135,"children":183},[184],"--exclude-secrets",", a saját azonosítóidból álló szólista és a soron belüli pragmák.",[187,190,191,194,195,198,199,202],{"tag":153,"children":188},[189],"Az ellenőrzés alapból be van kapcsolva",". A felismert mintáknál a tool rákérdez a kibocsátó szolgáltatásnál, hogy valódi-e a titok. A ",{"tag":135,"children":192},[193],"-n"," (",{"tag":135,"children":196},[197],"--no-verify",") kikapcsolja, a ",{"tag":135,"children":200},[201],"--only-verified"," pedig csak a megerősítetteket hagyja meg.",[204,207],{"tag":153,"children":205},[206],"A baseline maga az egész állapot",". Egy JSON-fájl a repóban, amely a plugin- és szűrőbeállításokat meg minden találat lenyomtatott ujjlenyomatát tartalmazza.",[209,212,213,216],{"tag":153,"children":210},[211],"Az audit a mérés",". A jelölések miatt a ",{"tag":135,"children":214},[215],"detect-secrets audit --stats"," megmondja, hogy egy-egy detektor mennyire teljesít a te kódodban, és ez az egyetlen becsületes hangolási út.",[218,221,222,225],{"tag":153,"children":219},[220],"Három felhasználási mód",": pre-commit hook, CI-feladat a stage-elt vagy verziózott fájlokra, vagy könyvtárként a ",{"tag":135,"children":223},[224],"SecretsCollection"," osztályon keresztül, ha a saját eszközláncodba kell.",{"type":129,"level":130,"id":94,"text":95},{"type":116,"content":228},[229],"A motor két lépcsős. A pluginek potenciális titkokat állítanak elő, majd a szűrők és az ellenőrzési szabály dönti el, mi kerül ténylegesen a jelentésbe. A transformerek előbb normalizálják a bemenetet, ezért az INI-, YAML-, XML- és Markdown-fájlok formányonkénti külön esetek nélkül vizsgálhatók soronként. A két felet összekötő, szerializálható settings-objektum a baseline-ban utazik, így a CI-futón futó vizsgálat pontosan azt a konfigurációt használja, amelyik a fájlt a gépeden létrehozta.",{"type":231,"attrs":232,"inner":236,"caption":237},"diagram",{"viewBox":233,"role":234,"aria-labelledby":235},"0 0 720 300","img","d1-ds-t d1-ds-d","\u003Ctitle id=\"d1-ds-t\">detect-secrets: egyszer vizsgál, minden commitnál őriz\u003C\u002Ftitle>\u003Cdesc id=\"d1-ds-d\">A verziózott git-fájlok átmennek a transzformereken, plugineken és szűrőkön, az ellenőrzés támogatott pluginnél hálózati hívást indít, az eredmény pedig egy becommitolt JSON baseline-ba kerül. A pre-commit hook és az audit menet is ezt olvassa.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"28\" class=\"d-title\">detect-secrets: egyszer vizsgál, minden commitnál őriz\u003C\u002Ftext>\u003Ctext x=\"700\" y=\"28\" text-anchor=\"end\" class=\"d-label\">detect-secrets dokumentáció\u003C\u002Ftext>\u003Ctext x=\"20\" y=\"56\" class=\"d-label\">EGYSZER A BASELINE-HOZ\u003C\u002Ftext>\u003Crect x=\"20\" y=\"70\" width=\"120\" height=\"64\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"80\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Git-fájlok\u003C\u002Ftext>\u003Ctext x=\"80\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">munkafa, git\u003C\u002Ftext>\u003Cpath d=\"M140 102 H152\" class=\"d-line\" \u002F>\u003Cpath d=\"M160 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"160\" y=\"70\" width=\"120\" height=\"64\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"220\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Transzformerek\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">ini, yaml, xml\u003C\u002Ftext>\u003Cpath d=\"M280 102 H292\" class=\"d-line\" \u002F>\u003Cpath d=\"M300 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"300\" y=\"70\" width=\"120\" height=\"64\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"360\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Pluginek\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">regex, entrópia\u003C\u002Ftext>\u003Cpath d=\"M420 102 H432\" class=\"d-line\" \u002F>\u003Cpath d=\"M440 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"440\" y=\"70\" width=\"120\" height=\"64\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"500\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Szűrők\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">ellenőrzéssel\u003C\u002Ftext>\u003Cpath d=\"M560 102 H572\" class=\"d-line\" \u002F>\u003Cpath d=\"M580 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"580\" y=\"70\" width=\"120\" height=\"64\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"640\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Baseline\u003C\u002Ftext>\u003Ctext x=\"640\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">json, lenyomat\u003C\u002Ftext>\u003Ctext x=\"20\" y=\"172\" class=\"d-label\">MINDEN COMMITNÁL\u003C\u002Ftext>\u003Cpath d=\"M600 134 C600 162 185 160 185 176\" class=\"d-line\" \u002F>\u003Cpath d=\"M185 186 l-5 -9 h10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M660 134 C660 162 535 160 535 176\" class=\"d-line\" \u002F>\u003Cpath d=\"M535 186 l-5 -9 h10 z\" class=\"d-head\" \u002F>\u003Crect x=\"20\" y=\"186\" width=\"330\" height=\"64\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"185\" y=\"214\" text-anchor=\"middle\" class=\"d-text\">detect-secrets-hook\u003C\u002Ftext>\u003Ctext x=\"185\" y=\"235\" text-anchor=\"middle\" class=\"d-small\">stage-elt fájlok, exit 1\u003C\u002Ftext>\u003Crect x=\"370\" y=\"186\" width=\"330\" height=\"64\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"535\" y=\"214\" text-anchor=\"middle\" class=\"d-text\">detect-secrets audit\u003C\u002Ftext>\u003Ctext x=\"535\" y=\"235\" text-anchor=\"middle\" class=\"d-small\">valódi vagy zaj\u003C\u002Ftext>",[238],"Egy vizsgálat állítja elő a baseline-t; a hook és az audit menet csak olvassa.",{"type":116,"content":240},[241],"Az ellenőrzés az a mechanizmus, amely eldönti, hogy használható-e a tool a gyakorlatban. A 0.12.4 óta egy plugin implementálhat verify függvényt, amely rákérdez a kibocsátó szolgáltatásnál, hogy él-e még a titok, a keyhacks projektben összegyűjtött technikákat használva. Az ellenőrzés öt sor kontextust is kap a találat előtt és után, mert az ezt alátámasztó kutatás szerint 80 százalék eséllyel megtalálható a többfaktoros titok második fele a közelben. A pontosságnövekedés nagy; az ár az egy kimenő hálózati kérés minden olyan commitnál, amely érint egy megfelelő sort.",{"type":116,"content":243},[244,245,248,249,252],"A baseline utána elvégzi a belügyek szétválasztását. A ",{"tag":135,"children":246},[247],"detect-secrets scan --baseline .secrets.baseline"," újra átvizsgálja a fát, a fájlt a jelenlegi formátumra migrálja, hozzáadja az új találatokat, eldobja az eltűnteket, és megőrzi az audit jelöléseit, így a diff átnézhető marad. A ",{"tag":135,"children":250},[251],"--slim"," kapcsoló tovább megy, és minimalizálja a commitok közötti diffet, de ez az audit funkció ára: a karcsú baseline-okat később már nem lehet auditálni, újra kell őket gyártani.",{"type":129,"level":130,"id":97,"text":98},{"type":116,"content":255},[256,257,260,261,264],"A telepítés a ",{"tag":135,"children":258},[259],"pip install detect-secrets"," vagy a ",{"tag":135,"children":262},[263],"brew install detect-secrets",". Az 1.5.0 a Python 3.8 és 3.12 közötti verziókat támogatja, a 3.6-ot és 3.7-et eldobta; a masteren már ott a Python 3.13 támogatás is, de ez egy kiadásban sincs bent, ezért 3.13 környezetben gitből kell telepíteni. A dokumentált beállítás egy pre-commit hook, aminek a baseline az argumentuma.",{"type":135,"code":266},"# .pre-commit-config.yaml\nrepos:\n  - repo: https:\u002F\u002Fgithub.com\u002FYelp\u002Fdetect-secrets\n    rev: v1.5.0\n    hooks:\n      - id: detect-secrets\n        args: ['--baseline', '.secrets.baseline']\n        exclude: package.lock.json",{"type":116,"content":268},[269],"Ezután egyszer hozd létre a baseline-t a repó gyökerében, és commitold be. Attól kezdve a hook minden commitnál fut, és csak azoknál a soroknál bukik el, amelyek nincsenek a fájlban. Egy régi repó első vizsgálata több ezer találatot is visszaadhat, és pontosan erre való a baseline.",{"type":135,"code":271},"pip install detect-secrets\n\n# once, from the repository root: record what is already there\ndetect-secrets scan > .secrets.baseline\n\n# after real leaks are rotated, or the repo legitimately grew\ndetect-secrets scan --baseline .secrets.baseline\n\n# label findings once, then keep the labels\ndetect-secrets audit .secrets.baseline\n\n# CI: fail the build on anything the baseline does not list\ngit diff --staged --name-only -z | xargs -0 \\\n  detect-secrets-hook --baseline .secrets.baseline",{"type":116,"content":273},[274,275,278,279,282,283,286],"A soron belüli engedélyezés a munkafolyamat másik fele. Az a sor, amely ",{"tag":135,"children":276},[277],"# pragma: allowlist secret"," végződéssel zárul, vagy amely fölött ",{"tag":135,"children":280},[281],"\u002F\u002F pragma: allowlist nextline secret"," áll, kimarad anélkül, hogy hozzáérne a baseline-hoz, és ez a jó eszköz egy tesztfixture-höz vagy egy dokumentációs példához. A ",{"tag":135,"children":284},[285],"detect-secrets scan --only-allowlisted"," megfordítja az ellenőrzést, és pont azokat a sorokat jelenti, így a pragma nem válhat csendben a valódi titkok búvóhelyévé.",{"type":288,"variant":289,"title":290,"body":291},"callout","warn","Két döntés, mielőtt ez buildbe megy",[292,297],[293,294,296],"Az ellenőrzés a hookot futtató minden gépen kimenő kéréseket küld külső API-khoz. Elszigetelt CI-hálózaton ez vagy lassítja a vizsgálatot, vagy megbuktatja, tehát tudatosan dönts a ",{"tag":135,"children":295},[193]," használata és az ellenőrzött szolgáltatások proxy-allowlistje között.",[298,301],{"tag":135,"children":299},[300],"detect-secrets audit --report"," kiírhatja magukat a titkokat is. Az auditot gépen futtasd, és a kimenetét soha ne másold be ticketbe, chatre vagy CI-logba. A baseline csak lenyomatokat tárol.",{"type":129,"level":130,"id":100,"text":101},{"type":116,"content":304},[305],"Alapállapotban a detektorok egy általános repóra vannak hangolva, és a következő munka az, hogy a tieidre hangoljuk őket. Az audit lépés nem Formság: ez az egyetlen elérhető mérés, és kézzel végzik.",{"type":148,"ordered":307,"items":308},true,[309,314,326,336,346,351],[310,311,313],"Generáld a baseline-t, majd jelölj egy reprezentatív mintát a ",{"tag":135,"children":312},[145]," paranccsal. A lista többi pontja enélkül nem működik.",[315,316,319,320,322,323,325],"Olvasd el a statisztikát. Azokat a detektorokat, amelyek nagyrészt zajt termelnek, kapcsold ki a ",{"tag":135,"children":317},[318],"--disable-plugin"," kapcsolóval, vagy szűkítsd a ",{"tag":135,"children":321},[177]," és ",{"tag":135,"children":324},[181]," szabályokkal.",[327,328,331,332,335],"Ne detektorokat törölj, hanem az entrópia-küszöböket told: a ",{"tag":135,"children":329},[330],"--base64-limit"," alapértéke 4.5, a ",{"tag":135,"children":333},[334],"--hex-limit"," értéke 3.0, és ez a két tekerő, amit a tool ad.",[337,338,341,342,345],"Adj hozzá saját azonosítólistát a ",{"tag":135,"children":339},[340],"--word-list"," kapcsolóval, ehhez a ",{"tag":135,"children":343},[344],"detect-secrets[word_list]"," extra kell.",[347,348,350],"Érdemes megfontolni az opcionális gibberish modellt azokhoz a titkokhoz, amelyek szónak látszanak. Alapból nincs bekapcsolva, mert a ",{"tag":135,"children":349},[168]," jellegű értékeket is átugorja.",[352,353,356],"Minden változtatás után futtasd újra a vizsgálatot a ",{"tag":135,"children":354},[355],"--baseline"," kapcsolóval, és olvasd el a baseline-fájl diffjét. A kisebb diff kevesebb zajt jelent, nem kevesebb titkot.",{"type":288,"variant":358,"title":359,"body":360},"tip","Két lépésben vezesd be a kaput",[361],[362,363,365,366,369],"Először egy sprintre csak jelentésként futtasd a hookot, és számolj találatokat ezer módosított sorra. Csak utána tedd blokkolóvá. Az a kapu, amely túl gyakran sípol, a ",{"tag":135,"children":364},[193]," kapcsolóval, egy ",{"tag":135,"children":367},[368],"SKIP"," előtaggal vagy force-pushsal kerülhető meg, és egy megkerülött kapu rosszabb, mint a kapu nélküli állapot, mert a csapat fedezettnek érzi magát.",{"type":129,"level":130,"id":103,"text":104},{"type":116,"content":372},[373,374,377,378,381],"A harmadik parancs fizeti meg a hangolást, és nem új dolgot keres. Az audit jelölések ",{"tag":135,"children":375},[376],"is_secret"," értéket írnak a baseline-ba; a ",{"tag":135,"children":379},[380],"--report"," kapcsolóval együtt ebből jön ki az a lista, amelyen a repóban még meglepő titkok vannak, és amelyeket cserélni kell. Ez a lista alakítja a vizsgálatot tulajdonossal és határidővel rendelkező biztonsági feladattá.",{"type":148,"ordered":149,"items":383},[384,386,388,393],[385],"Előbb jelölj, aztán riportálj. A baseline-ban valódi titkosként megjelölt találat egy migrációs lista bejegyzése.",[387],"A szolgáltatónál rotálj, ne a repóban. A fájl törlése nem változtat semmit azon, hogy a kulcs működik-e.",[389,390,392],"Utána futtasd újra a ",{"tag":135,"children":391},[355]," kapcsolóval. A találat eltűnik a fájliból, és ez a diff bizonyítja, hogy a migráció kész van.",[394],"A history vizsgálatát tartsd külön. A tool soha nem néz bele régi commitokba, az átírás vagy az egyszeri history-scan más feladat.",{"type":116,"content":396},[397],"Ez az a belügyek szétválasztása, amit a README leír, és még mindig a legjobb érv a tool mellett. Nem követeli meg, hogy rendrakd a repót, mielőtt hasznossá válik, és pont ezt követelik meg azok a szkennerek, amelyeket utólag tesznek egy megnövekedett kódbázisra.",{"type":129,"level":130,"id":106,"text":107},{"type":116,"content":400},[401],"A gyengeségek strukturálisak, nem kosmetikaiak. Több soros titkot nem talál, és olyan alapértelmezett jelszót sem, amelyet a kulcsszó-detektor nem ismer, és ezt a README a Caveats szakaszban ki is mondja. A git-históriát szándékosan nem vizsgálja, így egy évekkel ezelőtt commitolt, majd törölt titok láthatatlanok számára. Az egyedi plugineket egy tetszőleges fájl importálásával tölti be, amit a plugin-dokumentáció maga is biztonsági feltételezésként jelöl. A projekt pedig karbantartási módban van: az 1.5.0 a 2024. május 6-áról még mindig a legfrissebb tag, a Python 3.13 támogatás 2025 januárja óta a masteren ütközik, és a hibajegyben 184 nyitott tétel várakozik.",{"type":403,"head":404,"rows":430},"table",[405,412,419,424],[406,407,408,408,407,409,410,411],"J","e","l","m","z","ő",[413,407,414,407,415,414,416,417,407,415,418,407,414,417],"d","t","c","-","s","r",[420,421,414,408,407,422,423,417],"g","i","a","k",[425,418,426,427,427,408,407,428,429,420],"T","u","f","H","o",[431,449,457,468,477,485],[432,435,442,445],[433,421,415,407,434,415],"L","n",[436,437,422,415,438,407,416,439,440,441],"A","p","h","2",".","0",[443,444,425],"M","I",[436,446,447,433,416,448,440,441],"G","P","3",[450,454,455,456],[451,452,407,408,453],"N","y","v",[447,452,414,438,429,434],[446,429],[446,429],[458,462,464,466],[459,407,408,421,417,409,407,418,460,417,421,461,409,429,413,407,408,408],"F","é"," ",[463],"27 detektor: regex, entrópia, kulcsszónevek",[465],"TOML szabálykészlet, regex és entrópia, szabályonként bővíthető",[467],"Több mint 800 osztályozott hitelesítő adattípus",[469,471,473,475],[470,408,408,407,434,411,418,410,460,417],"E",[472],"Igen, felismert mintánként hálózati hívás",[474],"Nem",[476],"Igen, bejelentkezik, hogy ellenőrizze, él-e a titok",[478,479,481,483],[443,421,414,461,429,408,453,422,417],[480],"A munkafában verziózott git-fájlok, plusz a könyvtár API-ja",[482],"git log -p patchek, könyvtárak, stdin",[484],"Git, GitHub, GitLab, S3, GCS, Docker, Jenkins, Elasticsearch és mások",[486,488,490,492],[444,417,409,407,418,414,461,487,408,408,422,437,429,414],"á",[489],"Elfogadott találatok: egy becommitolt, auditált baseline",[491],"Találatok egy riportfájlból baseline útként",[493],"Eredményszűrés, baseline fogalom nélkül",{"type":116,"content":495},[496],"A lényeges összehasonlítás az, hová megy a munka. A gitleaks egyetlen Go bináris, kiváló TOML szabályformátummal, gyorsabban bevezethető, és a szerzője ma már nyíltan kimondja, hogy a projekt feature complete, csak biztonsági javításokat kap, az új munka pedig másik projektbe költözött. A TruffleHog a másik irány: valós API-k ellen ellenőrizi a hitelesítő adatokat, és ez az egyetlen módja biztosan megmondani, hogy egy találat sürgős, ezt pedig körülbelül 800 adattípussal és AGPL-3.0 licencsel fizeti meg, amelyet egyes jogi osztályok nem írnak alá. A detect-secrets cserébe a szélességet adja fel az egyetlen munkafolyamat kedvéért, amely másoknál nincs: egy auditált, becommitolt lista arról, mi ismert már, és a kivezetés róla.",{"type":129,"level":130,"id":109,"text":110},{"type":116,"content":499},[500],"Vedd fel, de infrastruktúraként, nem projektként. A baseline modell a helyes válasz egy több éves előzményekkel rendelkező repóhoz, ahol nincs keret a rendrakásra, és azt az artefaktumot állítja elő, amit egy biztonsági átnézés valójában kér: egy listát a rotálandó kulcsokról. Nem ez a tool az új repóhoz, ahol a gitleaks egyszerűbb, és nem az a csapaté, amelynek tudnia kell, hogy egy kiszivárgott kulcs még működik-e, az a TruffleHog dolga.",{"type":148,"ordered":307,"items":502},[503,505,507,509,511],[504],"Akkor válaszd, ha a repóban már vannak titkok, a history nem írható újra, és a cél a vérzés leállítása egy migrációs projekt indítása nélkül.",[506],"Tartsd a baseline-t a repóban, és a diffjét vidd be a review-ba. A magyarázat nélkül változó baseline az a hibaforma, amit figyelni kell.",[508],"Egy napot szánj a hangolásra. A tool pontosan olyan jó, mint a jelölt baseline, és a jelölés kézi munka.",[510],"Egészítsd ki szerveroldali vizsgálattal, ne helyettesítsd. A detect-secrets egy fejlesztő gépén blokkol; valaminek a már becommolt dolgokat is át kell néznie.",[512],"Ne építs új automatizálást arra a feltételezésre, hogy a detektorok még szaporodnak. Pineld az 1.5.0-ot, olvasd a mastert, ha Python 3.13 kell, és tervezz utódot, ha a projekt csendes marad.",{"type":288,"variant":514,"title":515,"body":516},"note","Egy ökölszabály",[517],[518],"Ha a csapatban senki nem hajlandó rotálni a baseline-ban felsorolt kulcsokat, a detect-secrets nem ér semmit. Csökkenti a jövőbeli incidensek számát, nem a repóban már meglévőkét.",{"type":129,"level":130,"id":112,"text":113},{"type":148,"ordered":307,"items":521},[522,525,528,531,534,537,540,543,546],[523],{"tag":422,"href":32,"children":524},[31],[526],{"tag":422,"href":35,"children":527},[34],[529],{"tag":422,"href":38,"children":530},[37],[532],{"tag":422,"href":41,"children":533},[40],[535],{"tag":422,"href":44,"children":536},[43],[538],{"tag":422,"href":47,"children":539},[46],[541],{"tag":422,"href":50,"children":542},[49],[544],{"tag":422,"href":53,"children":545},[52],[547],{"tag":422,"href":56,"children":548},[55],[550,609,665,722],{"slug":551,"published":552,"minutes":6,"category":7,"tags":553,"keywords":558,"about":566,"sources":574,"cover":602,"og":603,"expertise":59,"locales":604,"lang":63,"title":605,"description":606,"coverAlt":607,"url":608,"pricing":67,"kind":555},"guardrails-ai","2026-09-29",[554,555,556,557],"Guardrails","Output validation","LLM reliability","Python",[559,560,561,562,563,564,565],"guardrails ai","guardrails ai validators","llm output validation python","guardrails vs nemo guardrails","guardrails on_fail actions","llm guardrails framework","pii validation llm output",[567,570,571],{"name":568,"url":569},"NVIDIA","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FNVIDIA",{"name":27,"url":28},{"name":572,"url":573},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",[575,578,581,584,587,590,593,596,599],{"title":576,"url":577},"Guardrails AI on GitHub: README, news and FAQ","https:\u002F\u002Fgithub.com\u002Fguardrails-ai\u002Fguardrails",{"title":579,"url":580},"guardrails-ai 0.11.0 on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Fguardrails-ai\u002F",{"title":582,"url":583},"Guardrails Hub: 65 validators","https:\u002F\u002Fwww.guardrailsai.com\u002Fhub",{"title":585,"url":586},"Guardrails documentation: error remediation and on-fail actions","https:\u002F\u002Fwww.guardrailsai.com\u002Fdocs\u002Fconcepts\u002Ferror_remediation",{"title":588,"url":589},"Guardrails documentation: use on-fail actions","https:\u002F\u002Fwww.guardrailsai.com\u002Fguardrails\u002Fdocs\u002Fhow-to-guides\u002Fuse_on_fail_actions",{"title":591,"url":592},"Migration issue 1560: moving off hosted remote inferencing","https:\u002F\u002Fgithub.com\u002Fguardrails-ai\u002Fguardrails\u002Fissues\u002F1560",{"title":594,"url":595},"NVIDIA NeMo Guardrails on GitHub","https:\u002F\u002Fgithub.com\u002FNVIDIA-NeMo\u002FGuardrails",{"title":597,"url":598},"NVIDIA NeMo Guardrails documentation","https:\u002F\u002Fdocs.nvidia.com\u002Fnemo\u002Fguardrails\u002Flatest\u002Findex.html",{"title":600,"url":601},"OpenAI API pricing, including moderation","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fpricing","\u002Fimages\u002Fblog\u002Fguardrails-ai\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fguardrails-ai\u002Fog.jpg",[61,62,63],"Guardrails AI: ellenőrizni, amit a modell visszaad","A Guardrails AI értékelése: 65 validátor, nyolc on-fail művelet, a bérelt inferencing megszűnése 2026 augusztusában, és mikor jobb a NeMo Guardrails.","Guardrails AI borítógrafika validátor-pipeline feliratokkal","https:\u002F\u002Fwww.guardrailsai.com",{"slug":610,"published":611,"minutes":6,"category":7,"tags":612,"keywords":618,"about":625,"sources":632,"cover":657,"og":658,"expertise":59,"locales":659,"lang":63,"title":660,"description":661,"coverAlt":662,"url":628,"pricing":663,"kind":664},"semgrep","2026-08-14",[613,614,615,616,617],"SAST","Static analysis","CI security","Rule authoring","AppSec",[610,619,620,621,622,623,624],"semgrep vs codeql","semgrep rules","semgrep pricing","semgrep pro engine","free sast tools","semgrep ci github actions",[626,629],{"name":627,"url":628},"Semgrep","https:\u002F\u002Fsemgrep.dev",{"name":630,"url":631},"Static application security testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStatic_application_security_testing",[633,636,639,642,645,648,651,654],{"title":634,"url":635},"Semgrep pricing: Free, Teams and Enterprise","https:\u002F\u002Fsemgrep.dev\u002Fpricing\u002F",{"title":637,"url":638},"Semgrep Community Edition","https:\u002F\u002Fsemgrep.dev\u002Fproducts\u002Fcommunity-edition",{"title":640,"url":641},"Semgrep documentation: cross-file analysis","https:\u002F\u002Fdocs.semgrep.dev\u002Fsemgrep-code\u002Fsemgrep-pro-engine-intro\u002F",{"title":643,"url":644},"Semgrep documentation: usage and billing","https:\u002F\u002Fdocs.semgrep.dev\u002Fusage-and-billing\u002Foverview\u002F",{"title":646,"url":647},"Semgrep releases: v1.179.0","https:\u002F\u002Fgithub.com\u002Fsemgrep\u002Fsemgrep\u002Freleases",{"title":649,"url":650},"Semgrep Rules License v1.0","https:\u002F\u002Fsemgrep.dev\u002Flegal\u002Frules-license\u002F",{"title":652,"url":653},"Important updates to Semgrep OSS, 13 December 2024","https:\u002F\u002Fsemgrep.dev\u002Fblog\u002F2024\u002Fimportant-updates-to-semgrep-oss\u002F",{"title":655,"url":656},"OpenGrep repository","https:\u002F\u002Fgithub.com\u002Fopengrep\u002Fopengrep","\u002Fimages\u002Fblog\u002Fsemgrep\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fsemgrep\u002Fog.jpg",[61,62,63],"Semgrep: statikus elemzés, amely belefér egy pull requestbe","A Semgrep 30 nyelvet parse-ol, és YAML-mintákat illeszt másodpercek alatt; az engine LGPL-2.1 alatt ingyenes. A cross-file elemzés, a szabálykészletek és az AI-triage fizetős csomagban van.","A Semgrep szkennelési pipeline diagramja: forráskódok fájlokon, parse-on és szabályillesztésen át a jelentett találatokig","Free · from $30 per seat","Static analysis with AI rules",{"slug":666,"published":667,"minutes":668,"category":7,"tags":669,"keywords":673,"about":682,"sources":688,"cover":713,"og":714,"expertise":59,"locales":715,"lang":63,"title":716,"description":717,"coverAlt":718,"url":719,"pricing":720,"kind":721},"lakera-guard","2026-08-04",9,[670,554,671,672],"Prompt injection","LLM security","Content moderation",[674,675,676,677,678,679,680,681],"lakera guard","lakera guard review","prompt injection filter","prompt injection detection","llm guardrails comparison","pint benchmark","check point ai guardrails","lakera pricing",[683,685],{"name":670,"url":684},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_injection",{"name":686,"url":687},"Check Point","https:\u002F\u002Fwww.checkpoint.com\u002F",[689,692,695,698,701,704,707,710],{"title":690,"url":691},"Lakera documentation: Guard API","https:\u002F\u002Fdocs.lakera.ai\u002Fdocs\u002Fapi\u002Fguard",{"title":693,"url":694},"Guard API endpoint reference","https:\u002F\u002Fdocs.lakera.ai\u002Fapi-reference\u002Flakera-api\u002Fguard\u002Fscreen-content",{"title":696,"url":697},"Lakera documentation: projects","https:\u002F\u002Fdocs.lakera.ai\u002Fdocs\u002Fprojects",{"title":699,"url":700},"Lakera documentation: self-hosting","https:\u002F\u002Fdocs.lakera.ai\u002Fdocs\u002Fselfhosting",{"title":702,"url":703},"Lakera platform pricing","https:\u002F\u002Fplatform.lakera.ai\u002Fpricing",{"title":705,"url":706},"PINT benchmark on GitHub","https:\u002F\u002Fgithub.com\u002Flakeraai\u002Fpint-benchmark",{"title":708,"url":709},"Lakera homepage","https:\u002F\u002Fwww.lakera.ai\u002F",{"title":711,"url":712},"Check Point press release on the Lakera acquisition","https:\u002F\u002Fwww.checkpoint.com\u002Fpress-releases\u002Fcheck-point-acquires-lakera-to-deliver-end-to-end-ai-security-for-enterprises\u002F","\u002Fimages\u002Fblog\u002Flakera-guard\u002Fcover.webp","\u002Fimages\u002Fblog\u002Flakera-guard\u002Fog.jpg",[61,62,63],"Lakera Guard: promptinjectiós szűrés a kérés határán","A Lakera Guard értékelése: egyetlen végpont a modell előtt, a pontszámok mögött álló PINT-benchmark, és miért áll meg az ingyenes csomag havi 10 000 kérésnél.","A Lakera Guard teszt borítóképe: szűrő a nyelvi modell előtt","https:\u002F\u002Fwww.lakera.ai","Free tier · from $20 per month","Prompt injection filter",{"slug":723,"published":724,"minutes":668,"category":7,"tags":725,"keywords":727,"about":732,"sources":737,"cover":749,"og":750,"expertise":59,"locales":751,"lang":63,"title":752,"description":753,"coverAlt":754,"url":735,"pricing":67,"kind":755},"rebuff","2026-06-22",[670,671,554,726],"Canary tokens",[723,677,728,729,730,731],"rebuff python sdk","llm prompt injection guardrail","canary token leak detection","rebuff alternative",[733,736],{"name":734,"url":735},"Rebuff","https:\u002F\u002Fgithub.com\u002Fprotectai\u002Frebuff",{"name":572,"url":573},[738,740,743,746],{"title":739,"url":735},"Rebuff repository, archived 16 May 2025",{"title":741,"url":742},"Rebuff 0.1.1 on PyPI, released 20 January 2024","https:\u002F\u002Fpypi.org\u002Fproject\u002Frebuff\u002F",{"title":744,"url":745},"LangChain: Rebuff, detecting prompt injection attacks","https:\u002F\u002Fwww.langchain.com\u002Fblog\u002Frebuff",{"title":747,"url":748},"LLM Guard repository, archived 9 July 2026","https:\u002F\u002Fgithub.com\u002Fprotectai\u002Fllm-guard","\u002Fimages\u002Fblog\u002Frebuff\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frebuff\u002Fog.jpg",[61,62,63],"Rebuff: négy rétegű prompt-injekció-észlelés, mára archiválva","A Rebuff heurisztikával, LLM-mel, korábbi támadások vektortárhelyével és canary-tokenekkel pontozta a promptokat. A repót 2025 májusában archiválták, az utolsó kiadás 2024 januárjából való.","A Rebuff észlelési útvonalának diagramja: bejövő prompt a heurisztikán, LLM-ellenőrzésen és vektorkeresésen át az ítéletig","Prompt injection detection",1791383550136]