[{"data":1,"prerenderedAt":753},["ShallowReactive",2],{"blog-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,"metaTitle":67,"takeaways":68,"faq":74,"toc":87,"blocks":112,"others":516},"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.","Széles lap öt kis négyzettel, felette nagyító, alatta keresztezett vonal.","detect-secrets: vizsgálat baseline-nal · Balázs Csorba",[69,70,71,72,73],"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.",[75,78,81,84],{"q":76,"a":77},"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":79,"a":80},"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":82,"a":83},"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":85,"a":86},"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.",[88,91,94,97,100,103,106,109],{"id":89,"title":90},"what-it-is","Mi ez",{"id":92,"title":93},"how-it-works","Hogyan működik",{"id":95,"title":96},"getting-started","Első lépések",{"id":98,"title":99},"signal-vs-noise","Jel és zaj",{"id":101,"title":102},"rotation-workflow","A rotálási munkafolyamat",{"id":104,"title":105},"where-it-shingles","Hol csúszik el",{"id":107,"title":108},"verdict","Foglalat",{"id":110,"title":111},"sources","Források",[113,117,126,129,145,224,225,228,234,237,248,249,260,262,265,267,282,297,298,301,351,364,365,376,389,392,393,396,460,463,464,467,479,485,486],{"type":114,"content":115},"paragraph",[116],"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":114,"content":118},[119,120,125],"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":121,"to":122,"children":123},"link","\u002Fblog\u002Fsandboxing-coding-agents-ci-checklist",[124],"coding agentek sandboxolása a CI-ban"," cikk szól.",{"type":127,"level":128,"id":89,"text":90},"heading",2,{"type":114,"content":130},[131,132,136,137,140,141,144],"A csomag három parancsot ad, és a README szokatlanul egyértelmű arról, melyik mikor kell. A ",{"tag":133,"children":134},"code",[135],"detect-secrets scan"," létrehozza vagy frissíti a baseline-t, a ",{"tag":133,"children":138},[139],"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":133,"children":142},[143],"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":146,"ordered":147,"items":148},"list",false,[149,155,168,184,201,206,215],[150,154],{"tag":151,"children":152},"strong",[153],"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.",[156,159,160,163,164,167],{"tag":151,"children":157},[158],"27 detektor"," listáz a ",{"tag":133,"children":161},[162],"--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":133,"children":165},[166],"password"," jellegű nevekre való hozzárendeléseket jelöli.",[169,172,173,176,177,176,180,183],{"tag":151,"children":170},[171],"A szűrők a pluginek után futnak",", és döntik el, mi marad: ",{"tag":133,"children":174},[175],"--exclude-files",", ",{"tag":133,"children":178},[179],"--exclude-lines",{"tag":133,"children":181},[182],"--exclude-secrets",", a saját azonosítóidból álló szólista és a soron belüli pragmák.",[185,188,189,192,193,196,197,200],{"tag":151,"children":186},[187],"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":133,"children":190},[191],"-n"," (",{"tag":133,"children":194},[195],"--no-verify",") kikapcsolja, a ",{"tag":133,"children":198},[199],"--only-verified"," pedig csak a megerősítetteket hagyja meg.",[202,205],{"tag":151,"children":203},[204],"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.",[207,210,211,214],{"tag":151,"children":208},[209],"Az audit a mérés",". A jelölések miatt a ",{"tag":133,"children":212},[213],"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.",[216,219,220,223],{"tag":151,"children":217},[218],"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":133,"children":221},[222],"SecretsCollection"," osztályon keresztül, ha a saját eszközláncodba kell.",{"type":127,"level":128,"id":92,"text":93},{"type":114,"content":226},[227],"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":229,"src":230,"alt":231,"wide":232,"caption":233},"image","\u002Fimages\u002Fblog\u002Fdetect-secrets\u002Fdiagram-7.webp","detect-secrets: egyszer vizsgál, minden commitnál őriz 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.",true,"Egy vizsgálat állítja elő a baseline-t; a hook és az audit menet csak olvassa.",{"type":114,"content":235},[236],"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":114,"content":238},[239,240,243,244,247],"A baseline utána elvégzi a belügyek szétválasztását. A ",{"tag":133,"children":241},[242],"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":133,"children":245},[246],"--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":127,"level":128,"id":95,"text":96},{"type":114,"content":250},[251,252,255,256,259],"A telepítés a ",{"tag":133,"children":253},[254],"pip install detect-secrets"," vagy a ",{"tag":133,"children":257},[258],"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":133,"code":261},"# .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":114,"content":263},[264],"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":133,"code":266},"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":114,"content":268},[269,270,273,274,277,278,281],"A soron belüli engedélyezés a munkafolyamat másik fele. Az a sor, amely ",{"tag":133,"children":271},[272],"# pragma: allowlist secret"," végződéssel zárul, vagy amely fölött ",{"tag":133,"children":275},[276],"\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":133,"children":279},[280],"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":283,"variant":284,"title":285,"body":286},"callout","warn","Két döntés, mielőtt ez buildbe megy",[287,292],[288,289,291],"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":133,"children":290},[191]," használata és az ellenőrzött szolgáltatások proxy-allowlistje között.",[293,296],{"tag":133,"children":294},[295],"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":127,"level":128,"id":98,"text":99},{"type":114,"content":299},[300],"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":146,"ordered":232,"items":302},[303,308,320,330,340,345],[304,305,307],"Generáld a baseline-t, majd jelölj egy reprezentatív mintát a ",{"tag":133,"children":306},[143]," paranccsal. A lista többi pontja enélkül nem működik.",[309,310,313,314,316,317,319],"Olvasd el a statisztikát. Azokat a detektorokat, amelyek nagyrészt zajt termelnek, kapcsold ki a ",{"tag":133,"children":311},[312],"--disable-plugin"," kapcsolóval, vagy szűkítsd a ",{"tag":133,"children":315},[175]," és ",{"tag":133,"children":318},[179]," szabályokkal.",[321,322,325,326,329],"Ne detektorokat törölj, hanem az entrópia-küszöböket told: a ",{"tag":133,"children":323},[324],"--base64-limit"," alapértéke 4.5, a ",{"tag":133,"children":327},[328],"--hex-limit"," értéke 3.0, és ez a két tekerő, amit a tool ad.",[331,332,335,336,339],"Adj hozzá saját azonosítólistát a ",{"tag":133,"children":333},[334],"--word-list"," kapcsolóval, ehhez a ",{"tag":133,"children":337},[338],"detect-secrets[word_list]"," extra kell.",[341,342,344],"Érdemes megfontolni az opcionális gibberish modellt azokhoz a titkokhoz, amelyek szónak látszanak. Alapból nincs bekapcsolva, mert a ",{"tag":133,"children":343},[166]," jellegű értékeket is átugorja.",[346,347,350],"Minden változtatás után futtasd újra a vizsgálatot a ",{"tag":133,"children":348},[349],"--baseline"," kapcsolóval, és olvasd el a baseline-fájl diffjét. A kisebb diff kevesebb zajt jelent, nem kevesebb titkot.",{"type":283,"variant":352,"title":353,"body":354},"tip","Két lépésben vezesd be a kaput",[355],[356,357,359,360,363],"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":133,"children":358},[191]," kapcsolóval, egy ",{"tag":133,"children":361},[362],"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":127,"level":128,"id":101,"text":102},{"type":114,"content":366},[367,368,371,372,375],"A harmadik parancs fizeti meg a hangolást, és nem új dolgot keres. Az audit jelölések ",{"tag":133,"children":369},[370],"is_secret"," értéket írnak a baseline-ba; a ",{"tag":133,"children":373},[374],"--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":146,"ordered":147,"items":377},[378,380,382,387],[379],"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.",[381],"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.",[383,384,386],"Utána futtasd újra a ",{"tag":133,"children":385},[349]," kapcsolóval. A találat eltűnik a fájliból, és ez a diff bizonyítja, hogy a migráció kész van.",[388],"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":114,"content":390},[391],"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":127,"level":128,"id":104,"text":105},{"type":114,"content":394},[395],"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":397,"head":398,"rows":406},"table",[399,401,402,404],[400],"Jellemző",[4],[403],"gitleaks",[405],"TruffleHog",[407,416,424,433,442,451],[408,410,412,414],[409],"Licenc",[411],"Apache-2.0",[413],"MIT",[415],"AGPL-3.0",[417,419,421,423],[418],"Nyelv",[420],"Python",[422],"Go",[422],[425,427,429,431],[426],"Felismerési modell",[428],"27 detektor: regex, entrópia, kulcsszónevek",[430],"TOML szabálykészlet, regex és entrópia, szabályonként bővíthető",[432],"Több mint 800 osztályozott hitelesítő adattípus",[434,436,438,440],[435],"Ellenőrzés",[437],"Igen, felismert mintánként hálózati hívás",[439],"Nem",[441],"Igen, bejelentkezik, hogy ellenőrizze, él-e a titok",[443,445,447,449],[444],"Mit olvas",[446],"A munkafában verziózott git-fájlok, plusz a könyvtár API-ja",[448],"git log -p patchek, könyvtárak, stdin",[450],"Git, GitHub, GitLab, S3, GCS, Docker, Jenkins, Elasticsearch és mások",[452,454,456,458],[453],"Ismert állapot",[455],"Elfogadott találatok: egy becommitolt, auditált baseline",[457],"Találatok egy riportfájlból baseline útként",[459],"Eredményszűrés, baseline fogalom nélkül",{"type":114,"content":461},[462],"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":127,"level":128,"id":107,"text":108},{"type":114,"content":465},[466],"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":146,"ordered":232,"items":468},[469,471,473,475,477],[470],"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.",[472],"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.",[474],"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.",[476],"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.",[478],"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":283,"variant":480,"title":481,"body":482},"note","Egy ökölszabály",[483],[484],"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":127,"level":128,"id":110,"text":111},{"type":146,"ordered":232,"items":487},[488,492,495,498,501,504,507,510,513],[489],{"tag":490,"href":32,"children":491},"a",[31],[493],{"tag":490,"href":35,"children":494},[34],[496],{"tag":490,"href":38,"children":497},[37],[499],{"tag":490,"href":41,"children":500},[40],[502],{"tag":490,"href":44,"children":503},[43],[505],{"tag":490,"href":47,"children":506},[46],[508],{"tag":490,"href":50,"children":509},[49],[511],{"tag":490,"href":53,"children":512},[52],[514],{"tag":490,"href":56,"children":515},[55],[517,585,655,711],{"slug":518,"published":519,"minutes":520,"category":7,"tags":521,"keywords":527,"about":540,"sources":548,"cover":579,"og":580,"expertise":59,"locales":581,"lang":63,"title":582,"description":583,"coverAlt":584},"llm-output-guardrails-moderation","2026-10-17",13,[522,523,524,525,526],"LLM security","Guardrails","Content moderation","OWASP","Output validation",[528,529,530,531,532,533,534,535,536,537,538,539],"llm output guardrails","improper output handling llm","owasp llm05","openai moderation api","omni-moderation-latest","llama guard 4","nemo guardrails streaming","markdown image exfiltration","sanitize llm output html","groundedness detection","llm content moderation production","output rails",[541,543,546],{"name":524,"url":542},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContent_moderation",{"name":544,"url":545},"Cross-site scripting","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCross-site_scripting",{"name":525,"url":547},"https:\u002F\u002Fowasp.org\u002F",[549,552,555,558,561,564,567,570,573,576],{"title":550,"url":551},"OWASP GenAI Security Project: LLM05:2025 Improper Output Handling","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm052025-improper-output-handling\u002F",{"title":553,"url":554},"OpenAI API Docs: Moderation","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fmoderation",{"title":556,"url":557},"Meta: Llama Guard 4 model card and prompt formats","https:\u002F\u002Fwww.llama.com\u002Fdocs\u002Fmodel-cards-and-prompt-formats\u002Fllama-guard-4\u002F",{"title":559,"url":560},"NVIDIA NeMo Guardrails: Output rail streaming configuration","https:\u002F\u002Fdocs.nvidia.com\u002Fnemo\u002Fguardrails\u002Fconfigure-guardrails\u002Fyaml-schema\u002Fstreaming\u002Foutput-rail-streaming.md",{"title":562,"url":563},"Microsoft Learn: Prompt Shields in Azure AI Content Safety","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fai-services\u002Fcontent-safety\u002Fconcepts\u002Fjailbreak-detection",{"title":565,"url":566},"Microsoft Learn: Groundedness detection in Azure AI Content Safety","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fai-services\u002Fcontent-safety\u002Fconcepts\u002Fgroundedness",{"title":568,"url":569},"Microsoft Learn: Protected material detection in Azure AI Content Safety","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fai-services\u002Fcontent-safety\u002Fconcepts\u002Fprotected-material",{"title":571,"url":572},"Guardrails AI documentation","https:\u002F\u002Fwww.guardrailsai.com\u002Fdocs",{"title":574,"url":575},"Vue.js docs: Security best practices","https:\u002F\u002Fvuejs.org\u002Fguide\u002Fbest-practices\u002Fsecurity.html",{"title":577,"url":578},"Simon Willison: Remote prompt injection in GitLab Duo leads to source code theft","https:\u002F\u002Fsimonwillison.net\u002F2025\u002FMay\u002F23\u002Fremote-prompt-injection-in-gitlab-duo\u002F","\u002Fimages\u002Fblog\u002Fllm-output-guardrails-moderation\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-output-guardrails-moderation\u002Fog.jpg",[61,62,63],"LLM output guardrailek: moderáció, biztonságos megjelenítés és ellenőrzés, mielőtt bármi történne","Mit kell ellenőrizni a modell válasza után: biztonságos Markdown, sémaellenőrzés műveletek előtt, moderációs osztályozók, streaming és megalapozottság.","Három szűkülő téglalap alkot tölcsért, pontok hullanak át egy tálcába a lakat mellett.",{"slug":586,"published":519,"minutes":587,"category":7,"tags":588,"keywords":592,"about":604,"sources":612,"cover":649,"og":650,"expertise":59,"locales":651,"lang":63,"title":652,"description":653,"coverAlt":654},"ai-red-teaming-checklist-llm-apps",12,[589,522,525,590,591],"AI red teaming","promptfoo","Penetration testing",[593,594,595,596,597,598,599,600,601,602,603],"ai red teaming checklist","llm red teaming","red teaming llm applications","owasp genai red teaming guide","promptfoo red team","garak llm scanner","pyrit red teaming","llm penetration testing","owasp top 10 llm 2025 testing","jailbreak testing llm app","red team rag chatbot",[605,608,611],{"name":606,"url":607},"Red team","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRed_team",{"name":609,"url":610},"Prompt injection","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_injection",{"name":525,"url":547},[613,616,619,622,625,628,631,634,637,640,643,646],{"title":614,"url":615},"OWASP GenAI Security Project: GenAI Red Teaming Guide (January 2025)","https:\u002F\u002Fgenai.owasp.org\u002Fresource\u002Fgenai-red-teaming-guide\u002F",{"title":617,"url":618},"OWASP GenAI Security Project: Top 10 for LLM Applications 2025","https:\u002F\u002Fgenai.owasp.org\u002Fllm-top-10\u002F",{"title":620,"url":621},"Bullwinkel et al. (Microsoft): Lessons From Red Teaming 100 Generative AI Products (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2501.07238",{"title":623,"url":624},"NIST AI 600-1: Generative Artificial Intelligence Profile (July 2024)","https:\u002F\u002Fnvlpubs.nist.gov\u002Fnistpubs\u002Fai\u002FNIST.AI.600-1.pdf",{"title":626,"url":627},"Promptfoo Docs: Red team quickstart","https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002Fquickstart\u002F",{"title":629,"url":630},"Promptfoo Docs: Red team configuration","https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002Fconfiguration\u002F",{"title":632,"url":633},"Promptfoo Docs: Red team plugins","https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002Fplugins\u002F",{"title":635,"url":636},"Promptfoo Docs: Red team strategies","https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002Fstrategies\u002F",{"title":638,"url":639},"NVIDIA garak: LLM vulnerability scanner (GitHub)","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fgarak",{"title":641,"url":642},"Microsoft PyRIT documentation","https:\u002F\u002Fmicrosoft.github.io\u002FPyRIT\u002F",{"title":644,"url":645},"EU AI Act, Article 55: Obligations for providers of GPAI models with systemic risk","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F55\u002F",{"title":647,"url":648},"OWASP GenAI LLM Top 10 2026: final entries (GitHub)","https:\u002F\u002Fgithub.com\u002FGenAI-Security-Project\u002FGenAI-LLM-Top10\u002Ftree\u002Fmain\u002F2026\u002Ffinal","\u002Fimages\u002Fblog\u002Fai-red-teaming-checklist-llm-apps\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-red-teaming-checklist-llm-apps\u002Fog.jpg",[61,62,63],"AI red teaming ellenőrzőlista LLM-appokhoz: mit támadj meg, mielőtt a felhasználók tennék","Gyakorlati red teaming ellenőrzőlista LLM-funkciókhoz: hatókör, OWASP 2025 tesztesetek, promptfoo, garak és PyRIT, emberi tesztelők és regressziós tesztek.","Lista egy táblán, majd áthúzott pajzs és pipa egy ív végén.",{"slug":656,"published":657,"minutes":658,"category":7,"tags":659,"keywords":665,"about":676,"sources":686,"cover":705,"og":706,"expertise":59,"locales":707,"lang":63,"title":708,"description":709,"coverAlt":710},"slopsquatting-ai-package-hallucinations","2026-10-16",6,[660,661,662,663,664],"Supply chain security","Coding agents","npm","PyPI","Package hallucination",[666,667,668,669,670,671,672,673,674,675],"slopsquatting","package hallucination","ai hallucinated packages","llm package confusion attack","coding agent supply chain security","npm min-release-age","pnpm minimumReleaseAge","uv exclude-newer","npm ignore-scripts","huggingface-cli hallucinated package",[677,680,683],{"name":678,"url":679},"Typosquatting","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTyposquatting",{"name":681,"url":682},"Supply chain attack","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSupply_chain_attack",{"name":684,"url":685},"Hallucination (artificial intelligence)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHallucination_(artificial_intelligence)",[687,690,693,696,699,702],{"title":688,"url":689},"Spracklen et al.: We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.10279",{"title":691,"url":692},"Lasso Security, Bar Lanyado: Diving Deeper into AI Package Hallucinations (Mar 2024)","https:\u002F\u002Fwww.lasso.security\u002Fblog\u002Fai-package-hallucinations",{"title":694,"url":695},"npm Docs: config (min-release-age, before, ignore-scripts, allow-scripts)","https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv11\u002Fusing-npm\u002Fconfig",{"title":697,"url":698},"pnpm: Dependency resolution settings (minimumReleaseAge)","https:\u002F\u002Fpnpm.io\u002Fsettings\u002Fdependency-resolution",{"title":700,"url":701},"uv: Settings reference (exclude-newer, require-hashes)","https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Freference\u002Fsettings\u002F",{"title":703,"url":704},"pip documentation: Secure installs and hash-checking mode","https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002Ftopics\u002Fsecure-installs\u002F","\u002Fimages\u002Fblog\u002Fslopsquatting-ai-package-hallucinations\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fslopsquatting-ai-package-hallucinations\u002Fog.jpg",[61,62,63],"Slopsquatting: amikor a kódoló ágensek nem létező csomagokat telepítenek","Hogyan hallucinálnak az LLM-ek csomagneveket, hogyan regisztrálják ezeket a támadók, és mely registry-, lockfile- és ágenskontrollok állítják meg a telepítést.","Három doboz egy sínén, a középső üreges és elcsúszott, alatta egyező négyzetek a tálcán.",{"slug":712,"published":657,"minutes":658,"category":7,"tags":713,"keywords":717,"about":728,"sources":734,"cover":747,"og":748,"expertise":59,"locales":749,"lang":63,"title":750,"description":751,"coverAlt":752},"rag-poisoning-knowledge-base-attacks",[714,715,609,525,716],"RAG security","Data poisoning","Vector database",[718,719,720,721,722,723,724,725,726,727],"rag poisoning","knowledge base poisoning","poisonedrag","rag security","indirect prompt injection rag","owasp llm08 vector and embedding weaknesses","vector database security","rag data poisoning defense","hidden text prompt injection","secure rag ingestion",[729,732,733],{"name":730,"url":731},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":609,"url":610},{"name":525,"url":547},[735,738,741,744],{"title":736,"url":737},"Zou et al.: PoisonedRAG: Knowledge Corruption Attacks to Retrieval-Augmented Generation of Large Language Models (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.07867",{"title":739,"url":740},"Greshake et al.: Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2302.12173",{"title":742,"url":743},"OWASP Gen AI Security Project: LLM08:2025 Vector and Embedding Weaknesses","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm082025-vector-and-embedding-weaknesses\u002F",{"title":745,"url":746},"OWASP Gen AI Security Project: LLM04:2025 Data and Model Poisoning","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm042025-data-and-model-poisoning\u002F","\u002Fimages\u002Fblog\u002Frag-poisoning-knowledge-base-attacks\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-poisoning-knowledge-base-attacks\u002Fog.jpg",[61,62,63],"RAG-mérgezés: hogyan téríthet el néhány dokumentum egy asszisztenst, és hogyan védd a tudásbázist","Hogyan helyeznek el a támadók RAG által visszakeresett dokumentumokat, mit mutat a PoisonedRAG és az OWASP, és milyen kontrollok korlátozzák ezt.","Lapok futnak szalagon egy tárolóba, az egyiken kis kocka, a kijáratnál kapu.",1792261159490]