[{"data":1,"prerenderedAt":998},["ShallowReactive",2],{"blog-coding-agent-secrets-hygiene-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":23,"sources":33,"cover":100,"og":101,"expertise":102,"locales":103,"lang":106,"title":107,"description":108,"coverAlt":109,"metaTitle":110,"takeaways":111,"faq":117,"toc":130,"blocks":164,"others":713},"coding-agent-secrets-hygiene","2026-10-08",11,"security",[9,10,11,12,13],"AI agents","Secrets management","Claude Code","Pre-commit scanning","CI security",[15,16,17,18,19,20,21,22],"coding agent secrets","keep secrets away from AI agents","Claude Code deny read .env","gitleaks pre-commit hook","GitHub push protection secrets","OIDC GitHub Actions short-lived credentials","rotate a leaked API key","MCP server token scope",[24,27,30],{"name":25,"url":26},"Principle of least privilege","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrinciple_of_least_privilege",{"name":28,"url":29},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",{"name":31,"url":32},"Git","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGit",[34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97],{"title":35,"url":36},"Claude Code: permissions","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fpermissions",{"title":38,"url":39},"Claude Code: sandboxed Bash","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsandboxing",{"title":41,"url":42},"Claude Code: hooks","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fhooks",{"title":44,"url":45},"Claude Code: data usage","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fdata-usage",{"title":47,"url":48},"Claude Code: settings","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsettings",{"title":50,"url":51},"Claude Code: MCP servers","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fmcp",{"title":53,"url":54},"Codex: configuration reference","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fconfig-reference",{"title":56,"url":57},"Codex: agent approvals and security","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fagent-approvals-security",{"title":59,"url":60},"Codex: advanced configuration","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fconfig-file\u002Fconfig-advanced",{"title":62,"url":63},"GitHub: about push protection","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning\u002Fintroduction\u002Fabout-push-protection",{"title":65,"url":66},"GitHub: security hardening with OIDC","https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fsecurity-for-github-actions\u002Fsecurity-hardening-your-deployments\u002Fabout-security-hardening-with-openid-connect",{"title":68,"url":69},"GitHub: OpenID Connect reference","https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Freference\u002Fsecurity\u002Foidc",{"title":71,"url":72},"GitHub: using secrets in Actions","https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fsecurity-guides\u002Fusing-secrets-in-github-actions",{"title":74,"url":75},"GitHub: secure use reference","https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fsecurity-for-github-actions\u002Fsecurity-guides\u002Fsecurity-hardening-for-github-actions",{"title":77,"url":78},"GitHub: removing sensitive data","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fauthentication\u002Fkeeping-your-account-and-data-secure\u002Fremoving-sensitive-data-from-a-repository",{"title":80,"url":81},"gitleaks: README and latest release","https:\u002F\u002Fgithub.com\u002Fgitleaks\u002Fgitleaks",{"title":83,"url":84},"TruffleHog: README","https:\u002F\u002Fgithub.com\u002Ftrufflesecurity\u002Ftrufflehog",{"title":86,"url":87},"detect-secrets: README and latest release","https:\u002F\u002Fgithub.com\u002FYelp\u002Fdetect-secrets",{"title":89,"url":90},"Model Context Protocol: security best practices","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-06-18\u002Fbasic\u002Fsecurity_best_practices",{"title":92,"url":93},"OWASP: Secrets Management Cheat Sheet","https:\u002F\u002Fcheatsheetseries.owasp.org\u002Fcheatsheets\u002FSecrets_Management_Cheat_Sheet.html",{"title":95,"url":96},"OWASP: LLM02 sensitive information disclosure","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm022025-sensitive-information-disclosure\u002F",{"title":98,"url":99},"Git: git-add documentation","https:\u002F\u002Fgit-scm.com\u002Fdocs\u002Fgit-add","\u002Fimages\u002Fblog\u002Fcoding-agent-secrets-hygiene\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcoding-agent-secrets-hygiene\u002Fog.jpg","ai-engineer",[104,105,106],"en","de","hu","Kódoló ügynökök és titkok: kulcsok a kontextuson, logokon és commitokon kívül","Hogyan szivárognak ki a titkok kódoló ügynökökön át, és mely kontrollok állítják meg: olvasási tiltás, sandbox, pre-commit, push-védelem, OIDC és kulcscsere.","Borítókép a kódoló ügynökök és titkok témához: pajzs hat egymásra épülő kontrollal, az olvasási tiltástól a kulcscseréig.","Ügynökök és titkok: kontextus, logok, CI · Balázs Csorba",[112,113,114,115,116],"Az ügynök bármit elolvashat, ami a projektmappában van, a munkakönyvtáron belüli olvasás pedig nem kér megerősítést. Tiltsd le a kontextusból kizárandó fájlokat olyan Read-szabállyal, mint a Read(.env).","Az engedélyszabályok a fájleszközökre és a gyakori fájlparancsokra vonatkoznak, nem minden folyamatra. A sandboxot kapcsold be a shell-parancsokhoz, a sandbox.credentials beállítással pedig tiltsd le a hitelesítő fájlokat és tokeneket.","A helyi hookokat ki lehet kerülni, ezért a pre-commit ellenőrzést és a GitHub push-védelmet együtt futtasd. A szerveroldali ellenőrzést egy helyi hook nem tudja kihagyni.","A felhőhozzáféréshez a CI-ben OIDC-t használj, minden job csak a szükséges legkisebb jogosultsággal. Aki írási joggal rendelkezik egy tárolón, minden tárolótitkot el tud olvasni, ezért tartsd távol belőlük a hosszú életű kulcsokat.","Ha egy titok átiratba, logba vagy commitba került, tekintsd kiszivárgottnak. Először cseréld le, utána takarítsd ki az előzményeket, mert a klónok és a gyorsítótárazott nézetek megőrzik a régi commitokat.",[118,121,124,127],{"q":119,"a":120},"Megakadályozhatom, hogy a Claude Code olvassa a .env fájlomat?","Igen. A permissions.deny listában megadott Read(.env) szabály blokkolja a fájleszközöket, és ugyanez a szabály fedi a fájlparancsokat is, például a cat, a head és a tail parancsot, amelyek a Bash-en keresztül futnak. Nem állítja meg azt a szkriptet, amely maga nyit meg fájlokat, ezért kapcsold be a sandboxot is.",{"q":122,"a":123},"Távol tartja a titkokat a Claude Code-tól a .claudeignore fájl?","Nem. A Claude Code engedélyekről szóló dokumentációja szerint a .claudeignore fájlnak nincs hatása, ezért vidd át a bejegyzéseit Read-tiltó szabályokba.",{"q":125,"a":126},"Elküldi a modellnek a titkokat, amelyeket az ügynök olvas?","Amit az ügynök elolvas, az a beszélgetés részévé válik, a beszélgetés pedig minden kéréssel a modell API-jához megy. Az Anthropic adatkezelési dokumentációja szerint a promptok és a modell kimenetei TLS-en keresztül utaznak, a munkamenet-átiratokat pedig alapértelmezés szerint 30 napig helyben, titkosítatlan szövegként tárolják.",{"q":128,"a":129},"Mit tegyek, ha egy kulcs commitba került?","Először cseréld le a kulcsot. Az előzmények átírása önmagában nem elég, mert a klónok, a forkok, a gyorsítótárazott nézetek és a pull requestek továbbra is őrizhetik a commitot. A GitHub támogatása csak akkor segít az érzékeny adatok eltávolításában, ha a hitelesítő adat cseréje nem tudja csökkenteni a kockázatot.",[131,134,137,140,143,146,149,152,155,158,161],{"id":132,"title":133},"how-secrets-leak","Öt út, amelyen a titkok az ügynökön át kiszivárognak",{"id":135,"title":136},"deny-reads","Először az olvasási tiltás: engedélyszabályok és a sandbox",{"id":138,"title":139},"logs-and-transcripts","Átiratok, visszajelzések és CI-logok",{"id":141,"title":142},"commits","Ellenőrzés a commit előtt",{"id":144,"title":145},"push-protection","Push-védelem: az ellenőrzés, amelyet a helyi hook nem tud kihagyni",{"id":147,"title":148},"ci-oidc","CI: rövid életű tokenek a tárolt kulcsok helyett",{"id":150,"title":151},"mcp-tokens","MCP-szerverek: szűk tokenek és csak olvasási hozzáférés",{"id":153,"title":154},"rotate","Kiszivárgás után: először cseréld le, utána takarítsd ki",{"id":156,"title":157},"checklist","Ellenőrzőlista",{"id":159,"title":160},"first-steps","Mit tennék először",{"id":162,"title":163},"sources","Források",[165,169,172,175,233,236,245,248,249,259,261,272,301,308,327,329,335,352,354,355,358,361,362,365,404,412,414,424,425,428,431,437,438,441,443,465,472,473,481,496,497,500,513,514,606,607,619,622,623],{"type":166,"content":167},"paragraph",[168],"A kódoló ügynök olvassa a projektedet, futtatja a shellt és írja a commitjaidat, ezért a projektmappa minden titka egyetlen eszközhívásnyira van a modell kontextusablakától. Egyetlen beállítás sem oldja meg ezt. Tiltsd le a nem kívánt olvasásokat, sandboxold a shellt, ellenőrizd a commitok előtt, hagyd, hogy a szerver utasítsa vissza a titkot tartalmazó pusholásokat, a CI-nek pedig adj rövid életű tokeneket. Ezek közül több alapértelmezés szerint ki van kapcsolva.",{"type":170,"level":171,"id":132,"text":133},"heading",2,{"type":166,"content":173},[174],"Ezek a szivárgások többsége alapértelmezett beállításokból ered, nem támadóból, ezért könnyű őket figyelmen kívül hagyni.",{"type":176,"ordered":177,"items":178},"list",false,[179,190,203,212,228],[180,184,185,189],{"tag":181,"children":182},"strong",[183],"A projektfájlok."," A munkakönyvtáron belüli olvasáshoz a Claude Code engedélyekről szóló oldala szerint nem kell jóváhagyás, ezért a projektben lévő ",{"tag":186,"children":187},"code",[188],".env"," fájl kérés nélkül olvasható, és azután a beszélgetésben marad.",[191,194,195,198,199,202],{"tag":181,"children":192},[193],"A shell."," Az olyan parancsok, mint az ",{"tag":186,"children":196},[197],"env"," vagy a ",{"tag":186,"children":200},[201],"printenv",", értékeket írnak az eszköz kimenetébe, a Claude Code sandboxa pedig alapértelmezés szerint a környezetet a titkokkal együtt továbbadja a parancsoknak.",[204,207,208,211],{"tag":181,"children":205},[206],"Az átirat."," A Claude Code a munkamenet-átiratokat alapértelmezés szerint 30 napig sima szövegként tárolja a ",{"tag":186,"children":209},[210],"~\u002F.claude\u002Fprojects\u002F"," mappában, így minden, amit az ügynök kiírt, a lemezen marad.",[213,216,217,220,221,223,224,227],{"tag":181,"children":214},[215],"A commit."," ",{"tag":186,"children":218},[219],"git add -A"," az indexet a munkafához igazítja: hozzáad, módosít és eltávolít bejegyzéseket. Az ignorált fájlokat kihagyja, így a ",{"tag":186,"children":222},[188]," fájl, ha nincs a ",{"tag":186,"children":225},[226],".gitignore","-ban, abban a pillanatban bekerül az indexbe, amikor az ügynök lefuttatja a parancsot. Egy hibás teszt javítására kért ügynök egy konfigurációs értéket akár be is másolhat egy fixture-be, és commitolhatja.",[229,232],{"tag":181,"children":230},[231],"Az eszközök."," Egy MCP-szerver mindent megtehet, amit a tokenje enged, az MCP biztonsági útmutatója pedig arra kéri a klienseket, hogy figyelmeztessenek: a helyi szerverek ugyanazokkal a jogosultságokkal futnak, mint a kliens.",{"type":166,"content":234},[235],"A kontextusablak a legkevésbé látható út. Egy fájl vagy parancskimenet a beszélgetés részévé válik, a beszélgetés pedig minden kéréssel a modellhez megy. A Claude Code adatkezelési dokumentációja szerint a promptok és a modell kimenetei TLS-en keresztül jutnak el a modell API-jához. A TLS a kapcsolatot védi, nem azt, amit a modell lát, ezért a titkot már az olvasás előtt kell megállítani.",{"type":237,"attrs":238,"inner":242,"caption":243},"diagram",{"viewBox":239,"role":240,"aria-labelledby":241},"0 0 720 290","img","d1-leak-t d1-leak-d","\u003Ctitle id=\"d1-leak-t\">Három út, amelyen a titok kijut a projektből\u003C\u002Ftitle>\u003Cdesc id=\"d1-leak-d\">Három sor, soronként négy lépéssel. Az első sor a .env fájl titkából indul, átmegy a Read-eszközön és a kontextusablakon, és a modell API-jáig jut. A második sor egy shell-parancsból indul, átmegy a kimenetén, majd egy sima szövegű átiratba és egy visszajelzési jelentésbe jut. A harmadik sor a git add -A parancsból indul, átmegy egy commiton és egy pushon, és a távoli tárolóig, valamint annak gyorsítótárazott nézeteiig jut. Minden sornak saját kontrollra van szüksége.\u003C\u002Fdesc>\u003Crect x=\"20\" y=\"40\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"90\" y=\"64\" text-anchor=\"middle\" class=\"d-text\">Titok a .env-ben\u003C\u002Ftext>\u003Ctext x=\"90\" y=\"82\" text-anchor=\"middle\" class=\"d-small\">projektmappa\u003C\u002Ftext>\u003Cpath d=\"M164 66 H192\" class=\"d-line\" \u002F>\u003Cpath d=\"M200 66 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"200\" y=\"40\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"270\" y=\"64\" text-anchor=\"middle\" class=\"d-text\">Read-eszköz\u003C\u002Ftext>\u003Ctext x=\"270\" y=\"82\" text-anchor=\"middle\" class=\"d-small\">engedély nélkül\u003C\u002Ftext>\u003Cpath d=\"M344 66 H372\" class=\"d-line\" \u002F>\u003Cpath d=\"M380 66 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"380\" y=\"40\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"450\" y=\"64\" text-anchor=\"middle\" class=\"d-text\">Kontextusablak\u003C\u002Ftext>\u003Ctext x=\"450\" y=\"82\" text-anchor=\"middle\" class=\"d-small\">minden kérésnél\u003C\u002Ftext>\u003Cpath d=\"M524 66 H552\" class=\"d-line\" \u002F>\u003Cpath d=\"M560 66 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"560\" y=\"40\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"630\" y=\"64\" text-anchor=\"middle\" class=\"d-text\">Modell API\u003C\u002Ftext>\u003Ctext x=\"630\" y=\"82\" text-anchor=\"middle\" class=\"d-small\">megkapja a fájlt\u003C\u002Ftext>\u003Crect x=\"20\" y=\"130\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"90\" y=\"154\" text-anchor=\"middle\" class=\"d-text\">Shell-parancs\u003C\u002Ftext>\u003Ctext x=\"90\" y=\"172\" text-anchor=\"middle\" class=\"d-small\">env vagy printenv\u003C\u002Ftext>\u003Cpath d=\"M164 156 H192\" class=\"d-line\" \u002F>\u003Cpath d=\"M200 156 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"200\" y=\"130\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"270\" y=\"154\" text-anchor=\"middle\" class=\"d-text\">Parancskimenet\u003C\u002Ftext>\u003Ctext x=\"270\" y=\"172\" text-anchor=\"middle\" class=\"d-small\">kulcs olvashatóan\u003C\u002Ftext>\u003Cpath d=\"M344 156 H372\" class=\"d-line\" \u002F>\u003Cpath d=\"M380 156 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"380\" y=\"130\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"450\" y=\"154\" text-anchor=\"middle\" class=\"d-text\">Átirat\u003C\u002Ftext>\u003Ctext x=\"450\" y=\"172\" text-anchor=\"middle\" class=\"d-small\">~\u002F.claude, 30 nap\u003C\u002Ftext>\u003Cpath d=\"M524 156 H552\" class=\"d-line\" \u002F>\u003Cpath d=\"M560 156 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"560\" y=\"130\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"630\" y=\"154\" text-anchor=\"middle\" class=\"d-text\">Visszajelzés\u003C\u002Ftext>\u003Ctext x=\"630\" y=\"172\" text-anchor=\"middle\" class=\"d-small\">\u002Ffeedback elküldi\u003C\u002Ftext>\u003Crect x=\"20\" y=\"220\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"90\" y=\"244\" text-anchor=\"middle\" class=\"d-text\">git add -A\u003C\u002Ftext>\u003Ctext x=\"90\" y=\"262\" text-anchor=\"middle\" class=\"d-small\">ignoráltat kihagyja\u003C\u002Ftext>\u003Cpath d=\"M164 246 H192\" class=\"d-line\" \u002F>\u003Cpath d=\"M200 246 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"200\" y=\"220\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"270\" y=\"244\" text-anchor=\"middle\" class=\"d-text\">Commit\u003C\u002Ftext>\u003Ctext x=\"270\" y=\"262\" text-anchor=\"middle\" class=\"d-small\">a történet őrzi\u003C\u002Ftext>\u003Cpath d=\"M344 246 H372\" class=\"d-line\" \u002F>\u003Cpath d=\"M380 246 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"380\" y=\"220\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"450\" y=\"244\" text-anchor=\"middle\" class=\"d-text\">Push\u003C\u002Ftext>\u003Ctext x=\"450\" y=\"262\" text-anchor=\"middle\" class=\"d-small\">a szerver elutasít\u003C\u002Ftext>\u003Cpath d=\"M524 246 H552\" class=\"d-line\" \u002F>\u003Cpath d=\"M560 246 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"560\" y=\"220\" width=\"140\" height=\"52\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"630\" y=\"244\" text-anchor=\"middle\" class=\"d-text\">Távoli tároló\u003C\u002Ftext>\u003Ctext x=\"630\" y=\"262\" text-anchor=\"middle\" class=\"d-small\">forkok, gyorsítótár\u003C\u002Ftext>",[244],"Három út kifelé a projektből. Mindegyiknek saját kontroll kell: az elsőnél olvasási tiltás, az utolsónál push-védelem.",{"type":166,"content":246},[247],"Minden útnak saját kontroll kell, és a rendszerprompt egy sora nem ilyen kontroll. Az OWASP szerint a prompt-injekció megkerülheti az olyan utasításokat, mint a titkok kiírásának tiltása, ezért az érzékeny adatokhoz való hozzáférést a legkisebb jogosultság elve szerint korlátozd.",{"type":170,"level":171,"id":135,"text":136},{"type":166,"content":250},[251,252,254,255,258],"Kezdd a fájleszközökkel. Egy Read-tiltó szabály megakadályozza, hogy megnyissák az útvonalat. A szintaxis a gitignore szabályait követi, így a ",{"tag":186,"children":253},[188]," a munkakönyvtár bármilyen mélységében egyezik, az ",{"tag":186,"children":256},[257],"~\u002F"," kezdetű útvonal pedig a saját főkönyvtáradhoz kötődik. A szabályokat tiltás, majd kérdés, végül engedélyezés sorrendben ellenőrzi a rendszer, így a tiltás mindig nyer az engedélyezéssel szemben.",{"type":186,"code":260},"{\n  \"permissions\": {\n    \"deny\": [\n      \"Read(.env)\",\n      \"Read(secrets\u002F**)\",\n      \"Read(~\u002F.aws\u002F**)\",\n      \"Read(~\u002F.ssh\u002F**)\"\n    ]\n  }\n}",{"type":166,"content":262},[263,264,267,268,271],"A ",{"tag":186,"children":265},[266],".claude\u002Fsettings.json"," fájllal oszthatsz meg szabályt a csapattal, a ",{"tag":186,"children":269},[270],"~\u002F.claude\u002Fsettings.json"," pedig a saját gépedre vonatkozik. Minden hatókör tiltó szabályait az engedélyező szabályok előtt értékeli ki a rendszer. A felhasználói beállításokban használj ~\u002F vagy \u002F\u002F útvonalat, hogy minden projektet elérj, mert a vezető perjel a beállítási fájlhoz képest értendő.",{"type":166,"content":273},[274,275,278,279,278,282,278,285,288,289,292,293,296,297,300],"Két korlát számít. A szabályok a Read-eszközre, a Bash-on futtatott fájlparancsokra, például a ",{"tag":186,"children":276},[277],"cat",", ",{"tag":186,"children":280},[281],"head",{"tag":186,"children":283},[284],"tail",{"tag":186,"children":286},[287],"sed"," és ",{"tag":186,"children":290},[291],"tee"," parancsokra, valamint a Bash-átirányításokra vonatkoznak. Nem vonatkoznak olyan parancsra, amely fájlokat olvas anélkül, hogy megnevezné őket, például a ",{"tag":186,"children":294},[295],"grep -r pattern .",", és nem vonatkoznak a Python- vagy Node-szkriptre sem, amely maga nyit meg fájlokat. A ",{"tag":186,"children":298},[299],".claudeignore"," fájlnak pedig nincs hatása, ezért vidd át a bejegyzéseit Read-tiltó szabályokba.",{"type":302,"variant":303,"title":304,"body":305},"callout","warn","Az engedélyszabályok nem sandbox",[306],[307],"Operációs rendszer szintű kényszerítéshez, amely minden folyamatot kizár egy útvonalról, a dokumentáció a sandboxot említi. A parancsargumentumokat korlátozni próbáló Bash-mintázatok törékenyek, ezért ne építs rájuk határt.",{"type":166,"content":309},[310,311,314,315,318,319,322,323,326],"A sandbox a második réteg, és alapértelmezés szerint ki van kapcsolva. Kapcsold be a ",{"tag":186,"children":312},[313],"\u002Fsandbox"," paranccsal, vagy állítsd a ",{"tag":186,"children":316},[317],"sandbox.enabled"," értékét true-ra. macOS-en a Seatbelt, Linuxon és WSL2-n a bubblewrap érvényesíti a szabályokat, és csak a shell-parancsokat fedi le: a fájleszközök, az MCP-szerverek és a hookok kívül futnak. Az alapértelmezései szélesek. Az olvasás a gép nagy részét lefedi, a ",{"tag":186,"children":320},[321],"~\u002F.ssh"," és a ",{"tag":186,"children":324},[325],"~\u002F.aws\u002Fcredentials"," is beleértve, a környezeti változókat pedig örökli. A credentials blokk zárja be ezeket a réseket.",{"type":186,"code":328},"{\n  \"sandbox\": {\n    \"enabled\": true,\n    \"credentials\": {\n      \"files\": [\n        { \"path\": \"~\u002F.aws\u002Fcredentials\", \"mode\": \"deny\" },\n        { \"path\": \"~\u002F.ssh\", \"mode\": \"deny\" }\n      ],\n      \"envVars\": [\n        { \"name\": \"GITHUB_TOKEN\", \"mode\": \"deny\" },\n        { \"name\": \"NPM_TOKEN\", \"mode\": \"deny\" }\n      ]\n    }\n  }\n}",{"type":166,"content":330},[331,332,334],"Ez a példa a Claude Code sandbox-dokumentációjából származik. Blokkolja az AWS-hitelesítő fájl és az SSH-könyvtár olvasását, a sandboxolt parancsok környezetéből pedig eltávolítja a GITHUB_TOKEN és az NPM_TOKEN változót. Tartsd a ",{"tag":186,"children":333},[270]," fájlban – a projektbeállítások nem kapcsolhatják ki a fájlrendszer-izolációt. Az a PreToolUse hook, amely 2-es kóddal lép ki, a hívást még azelőtt blokkolja, hogy az engedélyszabályok lefutnának. A hookok a sandboxon kívül futnak, ezért a szkriptjeiket megbízható kódként kezeld.",{"type":166,"content":336},[337,338,343,344,347,348,351],"A Codexnél ugyanez a rés más formában jelentkezik, a CLI-t pedig a ",{"tag":339,"to":340,"children":341},"link","\u002Ftools\u002Fopenai-codex-cli",[342],"Codex-ismertetőmben"," mutatom be. A ",{"tag":186,"children":345},[346],"sandbox_mode"," lehet read-only, workspace-write vagy danger-full-access, a hálózati hozzáférés pedig kikapcsolva marad, amíg be nem kapcsolod. A shell környezete megtartja a nevükben KEY, SECRET vagy TOKEN szót tartalmazó változókat, mert az ",{"tag":186,"children":349},[350],"ignore_default_excludes"," alapértéke true. Állítsd false-ra, hogy a saját szűrőid lefutása előtt kiessenek:",{"type":186,"code":353},"[shell_environment_policy]\ninherit = \"core\"\nignore_default_excludes = false\n\n[shell_environment_policy.filters]\n\"AWS_*\" = \"exclude\"",{"type":170,"level":171,"id":138,"text":139},{"type":166,"content":356},[357],"Az átiratok az a szivárgás, amelyet az emberek elfelejtenek. A Claude Code sima szövegként tárolja őket a ~\u002F.claude\u002Fprojects\u002F mappában alapértelmezés szerint 30 napig, a megőrzési időt pedig a cleanupPeriodDays beállítás módosítja. A kereskedelmi fiókokra ugyanez a 30 napos alapmegőrzés vonatkozik, a minősített Enterprise-fiókoknál pedig elérhető a nulla adatmegőrzés (zero data retention). A \u002Ffeedback, a \u002Fbug és a \u002Fshare parancs elküldi az Anthropicnak a beszélgetési előzményeid másolatát, a kódodat is beleértve, és ezeket a jelentéseket öt évig őrzik. Az átiratban lévő személyes adat ott is személyes adat marad, ahol van, ezért a törlési rutinodnak ki kell terjednie rá.",{"type":166,"content":359},[360],"A Claude Code hibajelentései ismert titokmintákat maszkolnak, de ezek az eszköz saját belső hibáira vonatkoznak, nem a promptjaidra, fájljaidra vagy átiratodra. A CI-logokra saját szabályok vonatkoznak. A GitHub csak akkor maszkolja az értéket, ha a runner ismeri azt, a maszkolás pedig nagyrészt pontos egyezésen alapul, ezért a JSON-ba csomagolt titok átcsúszhat. Minden értékhez külön titkot hozz létre, és vedd fel a származtatott értékeket is, például az aláírt vagy kódolt változatot.",{"type":170,"level":171,"id":141,"text":142},{"type":166,"content":363},[364],"Három nyílt forráskódú átvizsgáló fedi le szinte mindazt, amit futtatnék. Abban különböznek, hogy hogyan döntik el, mi számít titoknak, és ez fontosabb, mint a funkciólista.",{"type":366,"head":367,"rows":376},"table",[368,370,372,374],[369],"Eszköz",[371],"Hogyan működik",[373],"Miben jó",[375],"Mire figyelj",[377,386,395],[378,380,382,384],[379],"gitleaks",[381],"Jelszavakat, API-kulcsokat és tokeneket talál git-tárolókban. A pre-commit hook minden commitot átvizsgál, a gitleaks git pedig az előzményeket.",[383],"Egy eszköz a hookhoz és az előzmények átvizsgálásához.",[385],"A helyi hook a SKIP=gitleaks beállítással kihagyható.",[387,389,391,393],[388],"detect-secrets",[390],"Baseline-fájl alapján vizsgál. A baseline rögzíti az ismert titkokat, a későbbi átvizsgálások pedig csak az újakat jelzik.",[392],"Olyan tárolóhoz, amely már titkokat tartalmaz.",[394],"A baseline elfogadja a meglévő titkokat, ezért commitolás előtt nézd át.",[396,398,400,402],[397],"TruffleHog",[399],"Titokjelölteket talál, és az adott szolgáltató API-jával tesztelve ellenőrizheti őket, több mint 800 titoktípusnál.",[401],"Az élő hitelesítő adatok elkülönítése a már érvénytelenektől.",[403],"Az ellenőrzés minden jelöltet eljuttat a szolgáltatóhoz, ezért nézd meg, illik-e ez az adataidhoz.",{"type":166,"content":405},[406,407,411],"Én a gitleaksszel kezdeném, mert a hookja néhány sor YAML, és az előzményeket is átvizsgálja. A kiadási oldal a v8.30.1-et jelöli meg legújabbként, ezért a konfiguráció ezt a verziótagot rögzíti. Olyan tárolónál, amely már tartalmaz titkokat, a baseline-okkal kapcsolatban nézd meg a ",{"tag":339,"to":408,"children":409},"\u002Ftools\u002Fdetect-secrets",[410],"detect-secrets-ismertetőmet",".",{"type":186,"code":413},"repos:\n  - repo: https:\u002F\u002Fgithub.com\u002Fgitleaks\u002Fgitleaks\n    rev: v8.30.1\n    hooks:\n      - id: gitleaks",{"type":166,"content":415},[263,416,419,420,423],{"tag":186,"children":417},[418],"pre-commit install"," parancsot klónonként egyszer futtasd. A gitleaks README-je a kiskaput is leírja, a ",{"tag":186,"children":421},[422],"SKIP=gitleaks git commit"," parancsot, ezért a helyi hook a véletlen hibákat fogja meg, a szervernek pedig saját ellenőrzés kell.",{"type":170,"level":171,"id":144,"text":145},{"type":166,"content":426},[427],"A GitHub push-védelme blokkolja a felismert titkokat a parancssorból indított pusholásokban, a GitHub felületén készült commitokban, a fájlfeltöltésekben, a REST API-kérésekben és a GitHub MCP-szerverével folytatott interakciókban – utóbbit a dokumentáció csak nyilvános tárolókra korlátozza. Egy ügynök ezek közül többen keresztül is elérheti a távoli tárolót, a szerver pedig mindegyiket látja.",{"type":166,"content":429},[430],"Két részlet dönti el, mennyire véd. A felhasználói push-védelem alapértelmezés szerint be van kapcsolva, de csak a GitHub.com nyilvános tárolóin. A tárolói push-védelemhez a GitHub Secret Protection kell, és addig ki van kapcsolva, amíg egy adminisztrátor be nem kapcsolja. Aki írási joggal rendelkezik, indoklással megkerülheti a blokkolást, és minden megkerülés riasztást és naplóbejegyzést hoz létre. A delegált megkerülés korlátozza, kik tehetik ezt meg.",{"type":302,"variant":432,"title":433,"body":434},"tip","Két beállítást ellenőrizz",[435],[436],"Kapcsold be a push-védelmet minden olyan tárolón, amelyet egy ügynök elérhet, a delegált megkerülést állítsd kis csoportra, a megkerülési riasztásokat pedig ugyanolyan alaposan nézd át, mint a sikertelen buildeket.",{"type":170,"level":171,"id":147,"text":148},{"type":166,"content":439},[440],"A legolcsóbb titok, amely nem szivárog ki, az, amelyet soha nem tárolnak. OIDC-vel a workflow egy jobhoz kér tokent a GitHubtól, a felhőszolgáltató pedig a beállított bizalmi szabályokkal veti össze az alanyt és a többi claimet. A kiadott hozzáférési token csak arra a jobra érvényes. Az OWASP titokkezelési útmutatója ugyanerre mutat: a rövid életű vagy dinamikus titkokat részesítsd előnyben. A tokenkéréshez a workflow egyetlen jogosultságra van szüksége:",{"type":186,"code":442},"permissions:\n  id-token: write # This is required for requesting the JWT\n  contents: read # This is required for actions\u002Fcheckout",{"type":166,"content":444},[445,446,449,450,453,454,457,458,322,461,464],"A GitHub referenciája szerint a ",{"tag":186,"children":447},[448],"id-token: write"," csak arra jogosítja a jobot, hogy lekérje az OIDC-tokent, és nem ad írási hozzáférést más erőforrásokhoz. Hagyd meg a ",{"tag":186,"children":451},[452],"contents: read"," beállítást, hacsak a job nem pusholja a kódot. A titkok nem jutnak el a forkból indított workflowkhoz, a ",{"tag":186,"children":455},[456],"GITHUB_TOKEN"," kivételével. Az igazi kockázat a ",{"tag":186,"children":459},[460],"pull_request_target",{"tag":186,"children":462},[463],"workflow_run"," eseményeknél van: a keményítési útmutató szerint ezek megbízhatatlan pull request-kód checkoutjával kombinálva írási jogot és titkokat adhatnak annak a kódnak, és ezzel a tároló átvehető.",{"type":166,"content":466},[467,468,411],"Az ügynököket a CI-ben ugyanolyan gyanakvással kell kezelni. Az az ügynök, amely egy issue-t vagy egy review-kommentet olvas, olyan szöveget olvas, amelyet valaki más írhatott, ezért ne tartson olyan titkot, amelyre nincs szüksége. A GitHub szerint bármely írási jogosultsággal rendelkező felhasználó el tudja olvasni az összes tárolótitkot. A környezeti titkokhoz kötelező átnézőket lehet rendelni. A sandbox oldalát illetően lásd az ",{"tag":339,"to":469,"children":470},"\u002Fblog\u002Fsandboxing-coding-agents-ci-checklist",[471],"AI-ügynökök sandbox-ellenőrzőlistáját",{"type":170,"level":171,"id":150,"text":151},{"type":166,"content":474},[475,476,480],"Az MCP-szerver hitelesítő adatot tart, és az eszközeit felajánlja az ügynöknek, ezért a tokenje a valódi határ. Az MCP biztonsági útmutatója tiltja a tokenátengedést (token passthrough), vagyis azt, hogy a szerver olyan tokent fogadjon el, amelyet kifejezetten neki adtak ki, és a legkisebb jogosultságú hatókörmodellt kéri. Azt is felsorolja, hogy a naplókba kerülő titkok az egyik módja annak, hogy egy támadó széles hatókörű tokenhez jusson. Az identitás oldalát az ",{"tag":339,"to":477,"children":478},"\u002Fblog\u002Fai-agent-identity-least-privilege",[479],"AI-ügynökök mint identitások"," című cikk tárgyalja.",{"type":166,"content":482},[483,484,487,488,491,492,495],"A Claude Code oldalán a ",{"tag":186,"children":485},[486],".mcp.json"," támogatja a ",{"tag":186,"children":489},[490],"${VAR}"," behelyettesítést, amelyet a dokumentáció az érzékeny értékekhez, például API-kulcsokhoz ajánl, így a tárolóban hivatkozás áll a titok helyett. A dokumentáció emellett csak olvasási jogú adatbázis-felhasználót javasol, hogy a Claude által futtatott lekérdezések ne módosíthassanak adatot. Ha egy projektben ki akarsz kapcsolni minden MCP-eszközt, a ",{"tag":186,"children":493},[494],"mcp__*"," tiltó szabály eltávolítja őket a kontextusból. A Codex hálózati proxyja a dokumentációja szerint nem szűri az MCP-szerverkapcsolatokat.",{"type":170,"level":171,"id":153,"text":154},{"type":166,"content":498},[499],"Az előzmények átírása takarítás, nem megoldás. A GitHub útmutatója szerint átírás és force push után a commitok elérhetők maradhatnak klónokon és forkokon, a gyorsítótárazott nézetekben szereplő SHA-1 hash-eken és az őket hivatkozó pull requesteken keresztül. Az átírás minden későbbi commit hash-ét megváltoztatja, és egy kolléga, aki egy régi klónt pusholva visszahozhatja a titkot. Először cseréld le.",{"type":176,"ordered":501,"items":502},true,[503,505,507,509,511],[504],"Vond vissza vagy cseréld le a hitelesítő adatot a szolgáltatónál, mielőtt bármi mást tennél.",[506],"Nézd át a szolgáltató naplóját a kiszivárgás óta tartó használatra, és minden magyarázhatatlan használatot kezelj incidensként.",[508],"Töröld a CI-futás logját, amely kiírta az értéket, a GitHub javaslata szerint, és minden olyan átiratot, amely tartalmazza.",[510],"Ha a tárolónak nem szabad megőriznie az értéket, írd át az előzményeket a git-filter-repo eszközzel, majd kérd meg minden klón tulajdonosát, hogy klónozza újra.",[512],"Vedd fel a mintát a pre-commit szkennerbe és a push-védelembe, hogy a következő szivárgást elutasítsák.",{"type":170,"level":171,"id":156,"text":157},{"type":366,"head":515,"rows":524},[516,518,520,522],[517],"Kontroll",[519],"Hol található",[521],"Mit állít meg",[523],"Hogyan ellenőrizd",[525,534,543,552,561,570,579,588,597],[526,528,530,532],[527],"Olvasási tiltás",[529],"permissions.deny a settings.json fájlban",[531],"Az ügynök fájleszközei, valamint a titkokat olvasó cat, head vagy tail parancsok",[533],"Kérd meg egy tesztmunkamenetben, hogy olvassa el a .env fájlt, és várj blokkolást",[535,537,539,541],[536],"Sandbox a hitelesítő adatok tiltásával",[538],"sandbox.enabled és sandbox.credentials",[540],"Shell-olvasás a ~\u002F.aws és ~\u002F.ssh mappákból, öröklött tokenek",[542],"Futtasd a \u002Fsandbox parancsot, és erősítsd meg, hogy be van kapcsolva",[544,546,548,550],[545],"Codex környezeti szűrő",[547],"shell_environment_policy a config.toml fájlban",[549],"A parancsokhoz eljutó KEY-, SECRET- és TOKEN-változók",[551],"Ellenőrizd, hogy az ignore_default_excludes értéke false",[553,555,557,559],[554],"Pre-commit átvizsgálás",[556],"gitleaks hook a .pre-commit-config.yaml fájlban",[558],"Titkok a helyi commitokban",[560],"Commitolj egy hamis kulcsot egy ágon, és várj elutasítást",[562,564,566,568],[563],"Push-védelem",[565],"A tároló biztonsági beállításai",[567],"Titkok pusholásokban, felületi commitokban, feltöltésekben és MCP-hívásokban",[569],"Ellenőrizd, hogy be van kapcsolva, és a megkerülés korlátozott",[571,573,575,577],[572],"OIDC a felhőhozzáféréshez",[574],"id-token: write és a felhős bizalmi szabályzat",[576],"Hosszú életű felhőkulcsok a tároló titkaiban",[578],"Töröld a felhőkulcsokat, amint a bizalmi kapcsolat működik",[580,582,584,586],[581],"Legkisebb jogosultságú token",[583],"permissions blokk minden workflow-ban",[585],"A GITHUB_TOKEN visszaélése",[587],"Alapértelmezés: contents: read",[589,591,593,595],[590],"Naplóhigiénia",[592],"Származtatott értékek felvéve, JSON-ba csomagolt titkok nélkül",[594],"Titkok a CI-naplókban",[596],"Keress rá egy tesztértékre egy futtatási naplóban",[598,600,602,604],[599],"Kulcscsere-runbook",[601],"A szolgáltató konzolja és naplói",[603],"Élő értékek kiszivárgás után",[605],"Gyakorolj egy kevésbé fontos kulcson",{"type":170,"level":171,"id":159,"text":160},{"type":176,"ordered":501,"items":608},[609,611,613,615,617],[610],"Adj Read-tiltó szabályokat a .env fájlra, a titkokat tartalmazó mappákra, valamint a ~\u002F.aws és a ~\u002F.ssh mappára. Töröld azokat a .claudeignore fájlokat, amelyekre eddig támaszkodtál.",[612],"Kapcsold be a sandboxot, és vegyél fel credentials-bejegyzéseket azokhoz a változókhoz és fájlokhoz, amelyeket ténylegesen használsz.",[614],"Telepítsd a gitleaks-et pre-commit hookként, és kapcsold be a push-védelmet minden olyan tárolón, amelyet egy ügynök elérhet.",[616],"Állítsd át a CI felhőhozzáférését OIDC-re, és minden workflow jogosultságait állítsd a minimumra.",[618],"Írd meg a kulcscsere-runbookot, mielőtt szükséged lenne rá, és gyakorolj egy kevésbé fontos kulcson.",{"type":166,"content":620},[621],"Ehhez nincs szükség platformra. Az alapértelmezéseket kell átállítani, a tárolóban néhány konfigurációs fájl kell, és az a szokás, hogy minden titoknál megkérded: el tudná-e olvasni, kiírni vagy commitolni az ügynök.",{"type":170,"level":171,"id":162,"text":163},{"type":176,"ordered":501,"items":624},[625,630,634,638,642,646,650,654,658,662,666,670,674,678,682,686,690,693,697,701,705,709],[626],{"tag":627,"href":36,"children":628},"a",[629],"Claude Code: engedélyek",[631],{"tag":627,"href":39,"children":632},[633],"Claude Code: sandboxolt Bash",[635],{"tag":627,"href":42,"children":636},[637],"Claude Code: hookok",[639],{"tag":627,"href":45,"children":640},[641],"Claude Code: adathasználat",[643],{"tag":627,"href":48,"children":644},[645],"Claude Code: beállítások",[647],{"tag":627,"href":51,"children":648},[649],"Claude Code: MCP-szerverek",[651],{"tag":627,"href":54,"children":652},[653],"Codex: konfigurációs referencia",[655],{"tag":627,"href":57,"children":656},[657],"Codex: ügynöki jóváhagyások és biztonság",[659],{"tag":627,"href":60,"children":660},[661],"Codex: speciális konfiguráció",[663],{"tag":627,"href":63,"children":664},[665],"GitHub: a push-védelemről",[667],{"tag":627,"href":66,"children":668},[669],"GitHub: biztonsági keményítés OIDC-vel",[671],{"tag":627,"href":69,"children":672},[673],"GitHub: OpenID Connect referencia",[675],{"tag":627,"href":72,"children":676},[677],"GitHub: titkok használata az Actionsben",[679],{"tag":627,"href":75,"children":680},[681],"GitHub: biztonságos használat referenciája",[683],{"tag":627,"href":78,"children":684},[685],"GitHub: érzékeny adatok eltávolítása",[687],{"tag":627,"href":81,"children":688},[689],"gitleaks: README és legújabb kiadás",[691],{"tag":627,"href":84,"children":692},[83],[694],{"tag":627,"href":87,"children":695},[696],"detect-secrets: README és legújabb kiadás",[698],{"tag":627,"href":90,"children":699},[700],"Model Context Protocol: biztonsági legjobb gyakorlatok",[702],{"tag":627,"href":93,"children":703},[704],"OWASP: titkkezelési puskalap",[706],{"tag":627,"href":96,"children":707},[708],"OWASP: LLM02, érzékeny információk kiszivárgása",[710],{"tag":627,"href":99,"children":711},[712],"Git: a git-add dokumentációja",[714,793,870,952],{"slug":715,"published":716,"minutes":6,"category":7,"tags":717,"keywords":723,"about":732,"sources":745,"cover":787,"og":788,"expertise":102,"locales":789,"lang":106,"title":790,"description":791,"coverAlt":792},"works-council-ai-tools-austria-germany","2026-10-02",[718,719,720,721,722],"Works council","AI coding tools","Employee monitoring","GDPR","Co-determination",[724,725,726,727,728,729,730,731],"works council AI tools","AI coding tools works council","Betriebsrat KI Mitbestimmung","§ 87 BetrVG Überwachung","§ 96 ArbVG Kontrollmaßnahmen","AI usage logs employee monitoring","works agreement for AI tools","GDPR Article 88 employee data",[733,736,739,742],{"name":734,"url":735},"General Data Protection Regulation","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj\u002Feng",{"name":737,"url":738},"EU Artificial Intelligence Act (Regulation (EU) 2024\u002F1689)","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2024\u002F1689\u002Foj\u002Feng",{"name":740,"url":741},"Arbeitsverfassungsgesetz (Austrian Labour Constitution Act)","https:\u002F\u002Fwww.ris.bka.gv.at\u002FGeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10008329",{"name":743,"url":744},"Betriebsverfassungsgesetz (German Works Constitution Act), § 87","https:\u002F\u002Fwww.gesetze-im-internet.de\u002Fbetrvg\u002F__87.html",[746,748,750,753,756,758,761,763,766,769,772,775,778,781,784],{"title":747,"url":741},"Arbeitsverfassungsgesetz (ArbVG), §§ 96 and 96a, consolidated text of 10 October 2026, RIS",{"title":749,"url":744},"Betriebsverfassungsgesetz (BetrVG), § 87, gesetze-im-internet.de",{"title":751,"url":752},"Betriebsverfassungsgesetz (BetrVG), § 90, gesetze-im-internet.de","https:\u002F\u002Fwww.gesetze-im-internet.de\u002Fbetrvg\u002F__90.html",{"title":754,"url":755},"Bundesdatenschutzgesetz (BDSG), § 26, gesetze-im-internet.de","https:\u002F\u002Fwww.gesetze-im-internet.de\u002Fbdsg_2018\u002F__26.html",{"title":757,"url":735},"Regulation (EU) 2016\u002F679 (GDPR), EUR-Lex",{"title":759,"url":760},"GDPR Article 5(1)(e), storage limitation, gdpr-info.eu","https:\u002F\u002Fgdpr-info.eu\u002Fart-5-gdpr\u002F",{"title":762,"url":738},"Regulation (EU) 2024\u002F1689 (AI Act), EUR-Lex",{"title":764,"url":765},"Regulation (EU) 2026\u002F1744, EUR-Lex","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2026\u002F1744\u002Foj",{"title":767,"url":768},"AI Act Article 26, AI Act Explorer","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F26\u002F",{"title":770,"url":771},"AI Act Annex III, AI Act Explorer","https:\u002F\u002Fartificialintelligenceact.eu\u002Fannex\u002F3\u002F",{"title":773,"url":774},"BAG, 1 ABR 16\u002F23 (July 2024), headset system, gesetze.co","https:\u002F\u002Fgesetze.co\u002Furteile\u002F1_ABR_16-23",{"title":776,"url":777},"ArbG Hamburg, 24 BVGa 1\u002F24: law-firm summary by CMS","https:\u002F\u002Fcms.law\u002Fde\u002Fdeu\u002Flegal-updates\u002Fkein-mitbestimmungsrecht-des-betriebsrats-bei-chatgpt-co",{"title":779,"url":780},"ArbG Hamburg, 24 BVGa 1\u002F24: law-firm summary by Gleiss Lutz","https:\u002F\u002Fwww.gleisslutz.com\u002Fde\u002Fknow-how\u002Farbeitsgericht-hamburg-zu-chatgpt-kein-mitbestimmungsrecht-des-betriebsrats",{"title":782,"url":783},"Claude Code documentation: monitoring usage","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fmonitoring-usage",{"title":785,"url":786},"GitHub Docs: Copilot metrics data reference","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Freference\u002Fmetrics-data","\u002Fimages\u002Fblog\u002Fworks-council-ai-tools-austria-germany\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fworks-council-ai-tools-austria-germany\u002Fog.jpg",[104,105,106],"AI-kódolóeszközök és üzemi tanács: mikor számít megfigyelésnek a napló","A használati naplók miatt egy AI-kódolóeszköz is megfigyelő rendszerré válhat. Mit írnak elő az osztrák és a német szabályok, és mire érdemes előre megállapodni.","Borítókép az üzemi tanácsról és az AI-eszközökről: a használati naplók hozzájárulási kapun mennek át, mielőtt egy fejlesztői licenc aktiválódna.",{"slug":794,"published":795,"minutes":796,"category":7,"tags":797,"keywords":802,"about":811,"sources":823,"cover":864,"og":865,"expertise":102,"locales":866,"lang":106,"title":867,"description":868,"coverAlt":869},"dpia-llm-feature-worked-example","2026-10-01",12,[798,721,799,800,801],"DPIA","LLM security","Data protection","AI Act",[803,804,805,806,807,808,809,810],"DPIA for LLM features","data protection impact assessment AI assistant","GDPR Article 35 AI","DSFA-V Austria AI","LLM customer support GDPR","prompt injection data leak GDPR","AI Act Article 50 chatbot","DPIA template LLM",[812,814,817,820],{"name":734,"url":813},"https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002F?uri=CELEX:32016R0679",{"name":815,"url":816},"WP29 guidelines on data protection impact assessment (WP248 rev.01)","https:\u002F\u002Fec.europa.eu\u002Fnewsroom\u002Farticle29\u002Fitems\u002F611236\u002Fen",{"name":818,"url":819},"OWASP LLM01:2025 Prompt Injection","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm01-prompt-injection\u002F",{"name":821,"url":822},"Regulation (EU) 2024\u002F1689 (AI Act)","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2024\u002F1689\u002Foj",[824,825,827,830,833,836,839,842,845,848,850,852,855,858,861,862],{"title":757,"url":813},{"title":826,"url":816},"WP29 guidelines on DPIA, WP248 rev.01 (European Commission item page)",{"title":828,"url":829},"WP248 rev.01 PDF, adopted 4 April 2017 and revised 4 October 2017","https:\u002F\u002Fec.europa.eu\u002Fnewsroom\u002Fjust\u002Fdocument.cfm?doc_id=47711",{"title":831,"url":832},"EDPB Guidelines 07\u002F2020 on the concepts of controller and processor","https:\u002F\u002Fwww.edpb.europa.eu\u002Fsystem\u002Ffiles\u002F2023-10\u002Fedpb_guidelines_202007_controllerprocessor_final_en.pdf",{"title":834,"url":835},"EDPB Opinion 28\u002F2024 on AI models, adopted 17 December 2024","https:\u002F\u002Fwww.edpb.europa.eu\u002Fsystem\u002Ffiles\u002F2024-12\u002Fedpb_opinion_202428_ai-models_en.pdf",{"title":837,"url":838},"EDPB news release on Opinion 28\u002F2024","https:\u002F\u002Fwww.edpb.europa.eu\u002Fnews\u002Fedpb-opinion-on-ai-models-gdpr-principles-support-responsible-ai_en",{"title":840,"url":841},"EDPB, Report of the work undertaken by the ChatGPT Taskforce, 23 May 2024","https:\u002F\u002Fwww.edpb.europa.eu\u002Fsystem\u002Ffiles\u002F2024-05\u002Fedpb_20240523_report_chatgpt_taskforce_en.pdf",{"title":843,"url":844},"DSFA-V, BGBl. II Nr. 278\u002F2018 (RIS)","https:\u002F\u002Fwww.ris.bka.gv.at\u002Feli\u002Fbgbl\u002FII\u002F2018\u002F278",{"title":846,"url":847},"DSFA-AV, BGBl. II Nr. 108\u002F2018 (RIS)","https:\u002F\u002Fwww.ris.bka.gv.at\u002Feli\u002Fbgbl\u002FII\u002F2018\u002F108",{"title":849,"url":819},"OWASP Top 10 for LLM Applications 2025: LLM01 Prompt Injection",{"title":851,"url":96},"OWASP Top 10 for LLM Applications 2025: LLM02 Sensitive Information Disclosure",{"title":853,"url":854},"OpenAI, Data controls in the OpenAI platform","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fyour-data",{"title":856,"url":857},"Commission Implementing Decision (EU) 2023\u002F1795 on the EU–US Data Privacy Framework","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Fdec_impl\u002F2023\u002F1795\u002Foj\u002Feng",{"title":859,"url":860},"CJEU, Case C-184\u002F20, OT v Vyriausioji tarnybinės etikos komisija","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002F?uri=CELEX:62020CJ0184",{"title":762,"url":822},{"title":863,"url":765},"Regulation (EU) 2026\u002F1744 (Digital Omnibus on AI), EUR-Lex","\u002Fimages\u002Fblog\u002Fdpia-llm-feature-worked-example\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fdpia-llm-feature-worked-example\u002Fog.jpg",[104,105,106],"DPIA egy LLM-es ügyfélszolgálati asszisztensre: példa a GDPR 35. cikke szerint","Példa DPIA-ra a GDPR 35. cikke szerint: egy AI-asszisztens, amely rendelési adatok alapján válaszol a vevői e-mailekre. Mikor kell, mik a kockázatok, ki a felelős.","Borítókép egy LLM-es ügyfélszolgálati asszisztens DPIA-jához: hat lépéses folyamat a magas kockázat vizsgálatától a felülvizsgálatig.",{"slug":871,"published":872,"minutes":796,"category":7,"tags":873,"keywords":878,"about":889,"sources":899,"cover":946,"og":947,"expertise":102,"locales":948,"lang":106,"title":949,"description":950,"coverAlt":951},"eu-ai-act-gpai-high-risk-2026","2026-09-24",[874,875,876,877],"EU AI Act","GPAI","High-risk AI","AI compliance",[879,880,881,882,883,884,885,886,887,888],"EU AI Act high-risk deadline","AI Act digital omnibus","AI Act GPAI obligations","AI Act provider vs deployer","EU AI Act 2 December 2027","GPAI code of practice","AI literacy Article 4","AI Act compliance checklist","AI Act OpenAI API provider deployer","AI Act mid-size company",[890,893,896],{"name":891,"url":892},"Artificial Intelligence Act","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FArtificial_Intelligence_Act",{"name":894,"url":895},"General-purpose artificial intelligence","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFoundation_model",{"name":897,"url":898},"European Commission","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FEuropean_Commission",[900,901,902,905,908,911,914,917,920,923,925,928,931,934,937,940,943],{"title":762,"url":822},{"title":863,"url":765},{"title":903,"url":904},"AI Act Explorer: Digital Omnibus on AI, full amending text","https:\u002F\u002Fartificialintelligenceact.eu\u002Fai-act-explorer\u002Fdigital-omnibus\u002F",{"title":906,"url":907},"European Commission: AI Act regulatory framework and timeline","https:\u002F\u002Fdigital-strategy.ec.europa.eu\u002Fen\u002Fpolicies\u002Fregulatory-framework-ai",{"title":909,"url":910},"European Commission: Guidelines for providers of general-purpose AI models","https:\u002F\u002Fdigital-strategy.ec.europa.eu\u002Fen\u002Fpolicies\u002Fguidelines-gpai-providers",{"title":912,"url":913},"European Commission: Q&A on the guidelines for GPAI providers","https:\u002F\u002Fdigital-strategy.ec.europa.eu\u002Fen\u002Ffaqs\u002Fguidelines-obligations-general-purpose-ai-providers",{"title":915,"url":916},"European Commission: The General-Purpose AI Code of Practice","https:\u002F\u002Fdigital-strategy.ec.europa.eu\u002Fen\u002Fpolicies\u002Fcontents-code-gpai",{"title":918,"url":919},"European Commission: AI literacy Questions and Answers","https:\u002F\u002Fdigital-strategy.ec.europa.eu\u002Fen\u002Ffaqs\u002Fai-literacy-questions-answers",{"title":921,"url":922},"AI Act Article 25: Responsibilities along the AI value chain","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F25\u002F",{"title":924,"url":768},"AI Act Article 26: Obligations of deployers of high-risk AI systems",{"title":926,"url":927},"AI Act Article 27: Fundamental rights impact assessment","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F27\u002F",{"title":929,"url":930},"AI Act Article 53: Obligations for providers of general-purpose AI models","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F53\u002F",{"title":932,"url":933},"AI Act Article 99: Penalties","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F99\u002F",{"title":935,"url":936},"AI Act Article 101: Fines for providers of general-purpose AI models","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F101\u002F",{"title":938,"url":939},"Gibson Dunn: EU AI Act Omnibus Agreement, postponed high-risk deadlines (27 May 2026)","https:\u002F\u002Fwww.gibsondunn.com\u002Feu-ai-act-omnibus-agreement-postponed-high-risk-deadlines-and-other-key-changes\u002F",{"title":941,"url":942},"Orrick: EU AI Act Update, Digital Omnibus finalizes 8 compliance changes (29 July 2026)","https:\u002F\u002Fwww.orrick.com\u002Fen\u002FInsights\u002F2026\u002F07\u002FEU-AI-Act-Update-Digital-Omnibus-Finalizes-8-Compliance-Changes",{"title":944,"url":945},"K&L Gates: EU Digital Omnibus on AI enters into force (31 July 2026)","https:\u002F\u002Fwww.klgates.com\u002FEU-Digital-Omnibus-on-AI-Enters-Into-Force-7-31-2026","\u002Fimages\u002Fblog\u002Feu-ai-act-gpai-high-risk-2026\u002Fcover.webp","\u002Fimages\u002Fblog\u002Feu-ai-act-gpai-high-risk-2026\u002Fog.jpg",[104,105,106],"EU AI Act az 50. cikken túl: GPAI, magas kockázatú határidők, teendők","Az AI Act a Digital Omnibus után: GPAI-kötelezettségek, magas kockázatú határidők (2027. dec. 2., 2028. aug. 2.), szolgáltató és alkalmazó szerep, MI-jártasság.","Diagram: az AI Act idővonala 2025 februárjától 2028 augusztusáig, GPAI-kötelezettségekre, magas kockázatú rendszerekre, szolgáltatói és alkalmazói szerepekre és MI-jártasságra bontva.",{"slug":953,"published":954,"minutes":796,"category":7,"tags":955,"keywords":961,"about":970,"sources":977,"cover":992,"og":993,"expertise":102,"locales":994,"lang":106,"title":995,"description":996,"coverAlt":997},"eu-ai-act-article-50-developer-checklist","2026-09-22",[874,956,957,958,959,960],"Article 50","AI transparency","Digital Omnibus","AI literacy","Compliance",[874,962,963,964,965,966,967,968,885,969],"EU AI Act developers","Article 50 AI Act","AI transparency obligations","AI Act chatbot disclosure","Digital Omnibus AI Act","AI Act Article 50(2) watermarking","AI Act deepfake labelling","does the AI Act apply to my app",[971,972,974],{"name":891,"url":892},{"name":973,"url":765},"Regulation (EU) 2026\u002F1744",{"name":975,"url":976},"AI Act Explorer","https:\u002F\u002Fartificialintelligenceact.eu\u002Fai-act-explorer\u002F",[978,981,984,987,989],{"title":979,"url":980},"Article 50: Transparency Obligations for Providers and Deployers of Certain AI Systems","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F50\u002F",{"title":982,"url":983},"Regulation (EU) 2026\u002F1744 (Digital Omnibus on AI), Official Journal, 24 Jul 2026","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2026\u002F1744\u002Foj\u002Feng",{"title":985,"url":986},"Faegre Drinker: Commission confirms Transparency Code of Practice as adequate and publishes final Article 50 Guidelines (30 Jul 2026)","https:\u002F\u002Fwww.faegredrinker.com\u002Fen\u002Finsights\u002Fpublications\u002F2026\u002F7\u002Feu-ai-act-commission-confirms-transparency-code-of-practice-as-adequate-and-publishes-final-version-of-its-guidelines-on-transparency-obligations",{"title":988,"url":939},"Gibson Dunn: EU AI Act Omnibus Agreement, postponed high-risk deadlines and other key changes (27 May 2026)",{"title":990,"url":991},"RTR KI-Servicestelle: AI Act (Austria)","https:\u002F\u002Fwww.rtr.at\u002Frtr\u002Fservice\u002Fki-servicestelle\u002Fai-act\u002F","\u002Fimages\u002Fblog\u002Feu-ai-act-article-50-developer-checklist\u002Fcover.webp","\u002Fimages\u002Fblog\u002Feu-ai-act-article-50-developer-checklist\u002Fog.jpg",[104,105,106],"EU AI Act, Article 50: a fejlesztők teendői 2026. augusztus 2-tól","EU AI Act, Article 50 átláthatósági kötelezettségei fejlesztőknek: MI-interakció közlése, gépileg olvasható jelölés, deepfake-ek, szolgáltató kontra üzemeltető.","Hattagú idővonal 2025. februártól 2028. augusztusig az AI Act mérföldköveivel, kiemelve az Article 50-es lépést 2026. augusztusban",1791636876329]