[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:security\u002Fas-crypto-implementation-pitfalls":4,"config":232},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":130,"samples":147},"security","Güvenlik","","as-crypto-implementation-pitfalls","As Crypto Implementation Pitfalls","tr",75,2850,[14,15,16],"junior","mid","senior",[18,21,24,27,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127],{"key":19,"name":20,"count":11},"as-access-control-idor","As Access Control Idor",{"key":22,"name":23,"count":11},"as-api-security","As Api Security",{"key":25,"name":26,"count":11},"as-authentication-session","As Authentication Session",{"key":8,"name":9,"count":11},{"key":29,"name":30,"count":11},"as-injection-input-validation","As Injection Input Validation",{"key":32,"name":33,"count":11},"as-secure-sdlc-sast-dast","As Secure Sdlc Sast Dast",{"key":35,"name":36,"count":11},"bt-crisis-communication-management","Bt Crisis Communication Management",{"key":38,"name":39,"count":11},"bt-detection-engineering-tuning","Bt Detection Engineering Tuning",{"key":41,"name":42,"count":11},"bt-digital-forensics-fundamentals","Bt Digital Forensics Fundamentals",{"key":44,"name":45,"count":11},"bt-incident-triage-classification","Bt Incident Triage Classification",{"key":47,"name":48,"count":11},"bt-ir-playbook-execution","Bt Ir Playbook Execution",{"key":50,"name":51,"count":11},"bt-threat-intelligence-application","Bt Threat Intelligence Application",{"key":53,"name":54,"count":11},"cse-container-workload-security","Cse Container Workload Security",{"key":56,"name":57,"count":11},"cse-cspm-misconfiguration","Cse Cspm Misconfiguration",{"key":59,"name":60,"count":11},"cse-data-protection-governance","Cse Data Protection Governance",{"key":62,"name":63,"count":11},"cse-detection-incident-response","Cse Detection Incident Response",{"key":65,"name":66,"count":11},"cse-iam-privilege-escalation","Cse Iam Privilege Escalation",{"key":68,"name":69,"count":11},"cse-network-perimeter-zero-trust","Cse Network Perimeter Zero Trust",{"key":71,"name":72,"count":11},"ds-iac-policy-as-code","Ds Iac Policy As Code",{"key":74,"name":75,"count":11},"ds-pipeline-security-gates","Ds Pipeline Security Gates",{"key":77,"name":78,"count":11},"ds-secrets-pipeline-management","Ds Secrets Pipeline Management",{"key":80,"name":81,"count":11},"ds-security-metrics-blameless-culture","Ds Security Metrics Blameless Culture",{"key":83,"name":84,"count":11},"ds-shift-left-security-culture","Ds Shift Left Security Culture",{"key":86,"name":87,"count":11},"ds-software-supply-chain-pipeline","Ds Software Supply Chain Pipeline",{"key":89,"name":90,"count":11},"pt-legal-ethical-boundaries","Pt Legal Ethical Boundaries",{"key":92,"name":93,"count":11},"pt-methodology-phases","Pt Methodology Phases",{"key":95,"name":96,"count":11},"pt-red-team-engagement-management","Pt Red Team Engagement Management",{"key":98,"name":99,"count":11},"pt-reporting-remediation-prioritization","Pt Reporting Remediation Prioritization",{"key":101,"name":102,"count":11},"pt-scoping-rules-of-engagement","Pt Scoping Rules Of Engagement",{"key":104,"name":105,"count":11},"pt-vulnerability-assessment-vs-pentest","Pt Vulnerability Assessment Vs Pentest",{"key":107,"name":108,"count":11},"security-authn-authz","Security Authn Authz",{"key":110,"name":111,"count":11},"security-cloud-infra-security","Security Cloud Infra Security",{"key":113,"name":114,"count":11},"security-compliance-risk","Security Compliance Risk",{"key":116,"name":117,"count":11},"security-cryptography-basics","Security Cryptography Basics",{"key":119,"name":120,"count":11},"security-incident-response","Security Incident Response",{"key":122,"name":123,"count":11},"security-network-security","Security Network Security",{"key":125,"name":126,"count":11},"security-secure-sdlc","Security Secure Sdlc",{"key":128,"name":129,"count":11},"security-web-vulnerabilities","Security Web Vulnerabilities",[131,135,138,141,144],{"key":132,"name":133,"count":134},"appsec","AppSec",450,{"key":136,"name":137,"count":134},"blue-team-incident","Blue Team \u002F Incident",{"key":139,"name":140,"count":134},"cloud-security","Cloud Security",{"key":142,"name":143,"count":134},"devsecops","DevSecOps",{"key":145,"name":146,"count":134},"offensive-pentest","Offensive \u002F Pentest",[148,166,179,192,205,219],{"id":149,"topic":9,"difficulty":150,"body":151,"options":152,"correct_key":163,"explanation":165},"019faa33-108b-75b1-991d-c1789825d3ae",1,"CBC modunda aynı anahtarla aynı IV'yi (başlatma vektörü) tekrar kullanmak neden bir güvenlik sorunudur?",[153,156,159,162],{"key":154,"text":155},"a","Şifreleme algoritmasının anahtar planını yeniden hesaplaması gerektiğinden şifrelemeyi yavaşlatır",{"key":157,"text":158},"b","Şifreli metnin düz metinden daha kısa olmasına neden olur ve formatı bozar",{"key":160,"text":161},"c","Yalnızca şifre çözme hızını etkiler, gizliliği etkilemez",{"key":163,"text":164},"d","Aynı anahtar\u002FIV çifti altında şifrelenen aynı düz metin blokları aynı şifreli metin bloklarını üretir ve yapıyı sızdırır","IV, ilk bloğun girdisini rastgeleleştirmek için vardır, böylece aynı düz metinler her seferinde farklı şekilde şifrelenir. Aynı anahtar ile aynı IV'yi tekrar kullanmak bu rastgeleleştirmeyi ortadan kaldırır; aynı anahtar\u002FIV çifti altında üretilmiş iki şifreli metni gören bir saldırgan, altta yatan düz metin bloklarının ne zaman eşleştiğini fark edebilir.",{"id":167,"topic":9,"difficulty":150,"body":168,"options":169,"correct_key":157,"explanation":178},"019faa33-108c-7058-8017-0c7627156f94","ECB (Electronic Codebook) modu neden çoğu gerçek dünya verisini şifrelemek için güvensiz kabul edilir?",[170,172,174,176],{"key":154,"text":171},"ECB modu her blok için ayrı bir anahtar gerektirir ve bu da anahtar yönetimini yönetilemez hale getirir",{"key":157,"text":173},"Her düz metin bloğu bağımsız şifrelenir, bu yüzden aynı bloklar her zaman aynı şifreli metni üretir ve desenleri açığa çıkarır",{"key":160,"text":175},"ECB modu AES ile uygulanamaz, yalnızca DES gibi eski şifrelerle kullanılabilir",{"key":163,"text":177},"ECB modu çıktı şifreli metnin boyutunu girdiye göre her zaman iki katına çıkarır","ECB, her sabit boyutlu bloğu zincirleme veya rastgeleleştirme olmadan bağımsız olarak şifreler, bu yüzden aynı düz metin blokları her zaman aynı şifreli metin bloklarına eşlenir. Bu, yalnızca şifreli metni gören bir saldırganın orijinal verideki yapısal desenleri çıkarmasına izin verir; klasik 'şifrelenmiş görüntüde hâlâ ana hatlar görünüyor' örneği bu kusuru gösterir.",{"id":180,"topic":9,"difficulty":150,"body":181,"options":182,"correct_key":157,"explanation":191},"019faa33-108c-7850-a455-4ab047a87c0c","Bir geliştirici AES şifreleme anahtarını doğrudan uygulama kaynak koduna bir string literal olarak gömüyor. Ana risk nedir?",[183,185,187,189],{"key":154,"text":184},"String literal olarak saklanan AES anahtarları çoğu derleyici tarafından otomatik olarak kısaltılır",{"key":157,"text":186},"Kaynak koda veya derlenmiş ikili dosyaya erişimi olan herkes anahtarı çıkarıp korunan tüm verinin şifresini çözebilir",{"key":160,"text":188},"Gömülü anahtarlar, bir yapılandırma dosyasından okumaya göre şifreleme algoritmasını yavaşlatır",{"key":163,"text":190},"Uygulama derlenemez çünkü şifreleme anahtarları string olarak temsil edilemez ve çoğu dil string literal'leri yalnızca kullanıcıya gösterilen metinler için ayırır.","Kaynak koda gömülü bir anahtar artık bir sır değildir — kodun veya ikili dosyanın her kopyasıyla birlikte gönderilir, sürüm kontrol geçmişinde görünür ve artefaktı okuyabilen ya da tersine çevirebilen herkes tarafından çıkarılabilir. Anahtarlar kaynak kodda değil, bir secrets manager veya KMS'de tutulmalıdır.",{"id":193,"topic":9,"difficulty":150,"body":194,"options":195,"correct_key":154,"explanation":204},"019faa33-108d-70d5-888d-dad82c89d8d7","Bir ekip hassas veriyi saklamadan önce Base64 ile kodluyor ve buna verinin 'şifrelenmesi' diyor. Bu iddianın sorunu nedir?",[196,198,200,202],{"key":154,"text":197},"Base64, anahtar içermeyen geri döndürülebilir bir kodlamadır; bunu gören herkes hiçbir anahtara ihtiyaç duymadan tek satırda düz metne geri çözebilir",{"key":157,"text":199},"Base64 çıktısı metin tabanlı bir veritabanı sütununda saklanamaz",{"key":160,"text":201},"Base64 yalnızca orijinal veri önceden şifrelenmişse geri döndürülebilir",{"key":163,"text":203},"Base64 verinin byte uzunluğunu değiştirir, bu teknik olarak şifreleme sayılır","Base64, ikili veriyi metin olarak temsil etmek için bir kodlama şemasıdır — anahtarı ve gizlilik amacı yoktur. Base64 metnini gören herkes bunu tek satırda çözebilir, bu yüzden ifşaya karşı sıfır koruma sağlar; oysa şifreleme geri döndürmek için gizli bir anahtar gerektirir.",{"id":206,"topic":9,"difficulty":207,"body":208,"options":209,"correct_key":154,"explanation":218},"019faa33-108d-784c-a80f-1047225f1632",2,"Şifreleme anahtarları ve oturum token'ları neden `Math.random()` gibi standart kütüphane rastgele fonksiyonu yerine kriptografik olarak güvenli bir sözde rastgele sayı üreteci (CSPRNG) kullanılarak üretilmelidir?",[210,212,214,216],{"key":154,"text":211},"Standart PRNG'ler öngörülemezlik için değil istatistiksel dağılım için optimize edilir, bu yüzden çıktıları bazen tahmin edilebilir.",{"key":157,"text":213},"CSPRNG'ler her zaman standart PRNG'lerden daha kısa çıktı üretir ve depolamadan tasarruf sağlar",{"key":160,"text":215},"Standart kütüphane rastgele fonksiyonları 32 bitten büyük sayı üretemez",{"key":163,"text":217},"Kullanıcı verisi işleyen çoğu uygulama için CSPRNG'ler çoğu ülkede yasal olarak zorunludur","`Math.random()` gibi genel amaçlı PRNG'ler hız ve istatistiksel dağılım için optimize edilmiştir, tahmine karşı direnç için değil. Bazıları öyle tohumlanır veya uygulanır ki yeterince çıktı (veya tohum) gözlemleyen bir saldırgan gelecekteki değerleri tahmin edebilir; bu çıktı bir oturum token'ı veya anahtar olduğunda felaket olur. CSPRNG'ler özellikle geçmiş çıktının gelecekteki çıktıyı tahmin etmede hiçbir avantaj sağlamayacağı şekilde tasarlanmıştır.",{"id":220,"topic":9,"difficulty":207,"body":221,"options":222,"correct_key":163,"explanation":231},"019faa33-108e-7179-ba3b-f1522aedef87","İki taraf, hiç yüz yüze görüşmeden güvenilmeyen bir ağ üzerinden paylaşılan bir simetrik anahtar oluşturmak istiyor. Hangi yaklaşım bunu güvenli şekilde çözer?",[223,225,227,229],{"key":154,"text":224},"Taraflardan biri bir simetrik anahtar seçip düz metin olarak gönderir; ağın 'muhtemelen güvenli' olduğuna güvenilir",{"key":157,"text":226},"Yalnızca teknik personelin okuyabilmesi için anahtarı iletmeden önce Base64 ile kodlamak",{"key":160,"text":228},"Her iki tarafın saatleri senkronize olduğundan, her iki taraf bağımsız olarak güncel tarihi hashleyerek aynı anahtarı üretir",{"key":163,"text":230},"Simetrik anahtarı alıcının genel anahtarıyla şifrelemek için asimetrik kriptografi kullanmak veya Diffie-Hellman gibi bir anahtar değişim protokolü uygulamak","Asimetrik şifreleme yalnızca alıcının (açıkça paylaşılabilen) genel anahtarını gerektirdiğinden, gönderenin önceden paylaşılan bir sır olmadan iletim sırasında simetrik bir anahtarı korumasına olanak tanır. Diffie-Hellman gibi anahtar değişim protokolleri, her iki tarafın da anahtarı doğrudan hiç iletmeden paylaşılan bir sır türetmesine izin vererek aynı amaca ulaşır.",{"fields":233,"seniorities":407,"interview_shapes":408,"locales":413,"oauth":415,"question_count":418,"coach_enabled":419,"jd_match_enabled":419},[234,259,279,296,320,333,352,371,381,388,394,401],{"key":235,"name_tr":236,"name_en":236,"sort":150,"specializations":237},"backend","Backend",[238,241,244,247,250,253,256],{"key":239,"name":240,"field":235},"general","Genel",{"key":242,"name":243,"field":235},"go","Go",{"key":245,"name":246,"field":235},"python","Python",{"key":248,"name":249,"field":235},"java","Java",{"key":251,"name":252,"field":235},"csharp","C#\u002F.NET",{"key":254,"name":255,"field":235},"nodejs","Node.js",{"key":257,"name":258,"field":235},"php","PHP",{"key":260,"name_tr":261,"name_en":261,"sort":207,"specializations":262},"frontend","Frontend",[263,264,267,270,273,276],{"key":239,"name":240,"field":260},{"key":265,"name":266,"field":260},"javascript","JavaScript",{"key":268,"name":269,"field":260},"typescript","TypeScript",{"key":271,"name":272,"field":260},"react","React",{"key":274,"name":275,"field":260},"vue","Vue",{"key":277,"name":278,"field":260},"angular","Angular",{"key":280,"name_tr":281,"name_en":281,"sort":282,"specializations":283},"fullstack","Fullstack",3,[284,285,286,287,288,289,290,291,292,293,294,295],{"key":239,"name":240,"field":280},{"key":242,"name":243,"field":235},{"key":245,"name":246,"field":235},{"key":248,"name":249,"field":235},{"key":251,"name":252,"field":235},{"key":254,"name":255,"field":235},{"key":257,"name":258,"field":235},{"key":265,"name":266,"field":260},{"key":268,"name":269,"field":260},{"key":271,"name":272,"field":260},{"key":274,"name":275,"field":260},{"key":277,"name":278,"field":260},{"key":297,"name_tr":298,"name_en":298,"sort":299,"specializations":300},"devops-cloud","DevOps \u002F Cloud",4,[301,302,305,308,311,314,317],{"key":239,"name":240,"field":297},{"key":303,"name":304,"field":297},"aws","AWS",{"key":306,"name":307,"field":297},"gcp","GCP",{"key":309,"name":310,"field":297},"azure","Azure",{"key":312,"name":313,"field":297},"kubernetes","Kubernetes",{"key":315,"name":316,"field":297},"terraform","Terraform",{"key":318,"name":319,"field":297},"linux","Linux",{"key":321,"name_tr":322,"name_en":322,"sort":323,"specializations":324},"ai-engineer","AI Engineer",5,[325,326,327,330],{"key":239,"name":240,"field":321},{"key":245,"name":246,"field":321},{"key":328,"name":329,"field":321},"llm-rag","LLM\u002FRAG",{"key":331,"name":332,"field":321},"mlops","MLOps",{"key":334,"name_tr":335,"name_en":336,"sort":337,"specializations":338},"database","Veritabanı","Database",6,[339,340,343,346,349],{"key":239,"name":240,"field":334},{"key":341,"name":342,"field":334},"postgresql","PostgreSQL",{"key":344,"name":345,"field":334},"mysql","MySQL",{"key":347,"name":348,"field":334},"mongodb","MongoDB",{"key":350,"name":351,"field":334},"redis","Redis",{"key":353,"name_tr":354,"name_en":355,"sort":356,"specializations":357},"mobile","Mobil","Mobile",7,[358,359,362,365,368],{"key":239,"name":240,"field":353},{"key":360,"name":361,"field":353},"ios-swift","iOS (Swift)",{"key":363,"name":364,"field":353},"android-kotlin","Android (Kotlin)",{"key":366,"name":367,"field":353},"flutter","Flutter",{"key":369,"name":370,"field":353},"react-native","React Native",{"key":5,"name_tr":6,"name_en":372,"sort":373,"specializations":374},"Security",8,[375,376,377,378,379,380],{"key":239,"name":240,"field":5},{"key":132,"name":133,"field":5},{"key":145,"name":146,"field":5},{"key":139,"name":140,"field":5},{"key":142,"name":143,"field":5},{"key":136,"name":137,"field":5},{"key":382,"name_tr":383,"name_en":384,"sort":385,"specializations":386},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[387],{"key":239,"name":240,"field":382},{"key":389,"name_tr":390,"name_en":390,"sort":391,"specializations":392},"data-engineer","Data Engineer",10,[393],{"key":239,"name":240,"field":389},{"key":395,"name_tr":396,"name_en":397,"sort":398,"specializations":399},"game-dev","Oyun Geliştirme","Game Development",11,[400],{"key":239,"name":240,"field":395},{"key":402,"name_tr":403,"name_en":403,"sort":404,"specializations":405},"ml-engineer","ML Engineer",12,[406],{"key":239,"name":240,"field":402},[14,15,16],{"junior":409,"mid":411,"senior":412},{"questions":410,"median_sec":3},20,{"questions":410,"median_sec":3},{"questions":410,"median_sec":3},[10,414],"en",[416,417],"google","github",21750,true]