{"id":32814,"date":"2025-10-26T07:30:58","date_gmt":"2025-10-26T04:30:58","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/"},"modified":"2025-10-26T07:30:58","modified_gmt":"2025-10-26T04:30:58","slug":"yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/","title":{"rendered":"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi"},"content":{"rendered":"<p><body><\/p>\n<p>Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, API&#8217;ler arac\u0131l\u0131\u011f\u0131yla iletilen ki\u015fisel verilerin s\u0131zmas\u0131na yol a\u00e7abilir. API \u00f6nbellekleme g\u00fcvenli\u011fi, CDN ayarlar\u0131nda titizlikle ele al\u0131nmas\u0131 gereken kritik bir konudur.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, API&#8217;ler modern uygulamalar\u0131n bel kemi\u011fini olu\u015fturur. Mobil uygulamalardan web sitelerine, IoT cihazlar\u0131ndan mikro hizmet mimarilerine kadar her yerde veriye eri\u015fim ve i\u015fleme API&#8217;ler \u00fczerinden ger\u00e7ekle\u015fir. Bu s\u00fcre\u00e7te performans, kullan\u0131c\u0131 deneyimi ve maliyet etkinli\u011fi gibi fakt\u00f6rler devreye girdi\u011finde, API \u00f6nbellekleme vazge\u00e7ilmez bir strateji haline gelir. \u00d6nbellekleme, s\u0131k\u00e7a istenen verilerin orijinal sunucudan (origin) her seferinde \u00e7ekilmesi yerine, kullan\u0131c\u0131ya daha yak\u0131n bir konumda depolanarak h\u0131zl\u0131 bir \u015fekilde sunulmas\u0131n\u0131 sa\u011flar. Bu durum, gecikmeleri \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r, sunucu y\u00fck\u00fcn\u00fc hafifletir ve dolay\u0131s\u0131yla altyap\u0131 maliyetlerini d\u00fc\u015f\u00fcr\u00fcr.<\/p>\n<p>Ancak, madalyonun di\u011fer y\u00fcz\u00fcnde ciddi g\u00fcvenlik riskleri yatar. \u00d6zellikle ki\u015fisel olarak tan\u0131mlanabilir bilgiler (PII &#8211; Personally Identifiable Information) veya hassas veriler i\u00e7eren API yan\u0131tlar\u0131 \u00f6nbelle\u011fe al\u0131nd\u0131\u011f\u0131nda, yanl\u0131\u015f yap\u0131land\u0131rmalar b\u00fcy\u00fck felaketlere yol a\u00e7abilir. D\u00fc\u015f\u00fcn\u00fcn ki, bir kullan\u0131c\u0131n\u0131n finansal bilgilerini, sa\u011fl\u0131k verilerini veya \u00f6zel mesajlar\u0131n\u0131 i\u00e7eren bir API yan\u0131t\u0131 yanl\u0131\u015fl\u0131kla kamuya a\u00e7\u0131k bir \u00f6nbelle\u011fe al\u0131nm\u0131\u015f. Bu durumda, ilgili veriler yetkisiz ki\u015filer taraf\u0131ndan eri\u015filebilir hale gelir ve bu da KVKK (Ki\u015fisel Verilerin Korunmas\u0131 Kanunu) ve GDPR (Genel Veri Koruma T\u00fcz\u00fc\u011f\u00fc) gibi d\u00fczenlemeler kapsam\u0131nda a\u011f\u0131r yasal sonu\u00e7lar do\u011furabilir. Dolay\u0131s\u0131yla, API \u00f6nbelleklemesini uygularken g\u00fcvenlik, performans kadar hatta ondan daha da \u00f6ncelikli bir konumda olmal\u0131d\u0131r. G\u00fcvenlik ve performans aras\u0131ndaki do\u011fru dengeyi kurmak, sistemlerin hem verimli hem de g\u00fcvenli \u00e7al\u0131\u015fmas\u0131 i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h3>Bir \u00d6rnekle Anla\u015fal\u0131m: Ki\u015fiye \u00d6zel Verilerin \u00d6nbellekleme Tuza\u011f\u0131<\/h3>\n<p>Farz edelim ki, bir e-ticaret platformu geli\u015ftiriyorsunuz. Kullan\u0131c\u0131lar giri\u015f yapt\u0131ktan sonra kendi sipari\u015f ge\u00e7mi\u015flerini veya ki\u015fisel sepet i\u00e7eriklerini g\u00f6rmek i\u00e7in bir API \u00e7a\u011fr\u0131s\u0131 yap\u0131yorlar. Bu API&#8217;nin yan\u0131t\u0131, kullan\u0131c\u0131ya \u00f6zel ve hassas bilgiler i\u00e7erir. E\u011fer bu API&#8217;nin yan\u0131t\u0131, kimlik do\u011frulama bilgisini (\u00f6rne\u011fin bir <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131 veya kullan\u0131c\u0131ya \u00f6zel bir \u00e7erez) dikkate almadan genel bir \u00f6nbellek anahtar\u0131yla \u00f6nbelle\u011fe al\u0131n\u0131rsa ne olur? Bir kullan\u0131c\u0131n\u0131n sipari\u015f ge\u00e7mi\u015fi, ba\u015fka bir kullan\u0131c\u0131ya g\u00f6sterilebilir hale gelir. Bu durum sadece veri s\u0131z\u0131nt\u0131s\u0131 olmakla kalmaz, ayn\u0131 zamanda kullan\u0131c\u0131 g\u00fcvenini zedeler ve markan\u0131za ciddi zararlar verir. Bu senaryo, \u00f6nbellek anahtar\u0131n\u0131n do\u011fru yap\u0131land\u0131r\u0131lmas\u0131n\u0131n ne kadar kritik oldu\u011funu net bir \u015fekilde ortaya koymaktad\u0131r. Her HTTP iste\u011finin bir \u00f6nbellek anahtar\u0131yla ili\u015fkilendirilmesi ve bu anahtar\u0131n iste\u011fin t\u00fcm ay\u0131rt edici \u00f6zelliklerini i\u00e7ermesi gerekmektedir. Aksi takdirde, \u00f6nbellek, genel veriler yerine ki\u015fiye \u00f6zel verileri herkese a\u00e7\u0131k hale getiren bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131na d\u00f6n\u00fc\u015febilir.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Hassas veri i\u00e7eren API yan\u0131tlar\u0131n\u0131 \u00f6nbelle\u011fe almadan \u00f6nce &#8220;need-to-cache&#8221; prensibini uygulay\u0131n. Ger\u00e7ekten \u00f6nbelle\u011fe al\u0131nmas\u0131 gerekiyor mu? E\u011fer al\u0131nacaksa, en kat\u0131 g\u00fcvenlik \u00f6nlemlerini uygulay\u0131n.\n<\/div>\n<h2>CloudFront ve \u00d6nbellekleme Temelleri: Nas\u0131l \u00c7al\u0131\u015f\u0131r ve Veri Ak\u0131\u015f\u0131 Nas\u0131l Ger\u00e7ekle\u015fir?<\/h2>\n<p>Amazon CloudFront, Amazon Web Services (AWS) taraf\u0131ndan sunulan k\u00fcresel bir \u0130\u00e7erik Da\u011f\u0131t\u0131m A\u011f\u0131 (CDN) hizmetidir. Bir CDN&#8217;in temel amac\u0131, son kullan\u0131c\u0131lara i\u00e7eri\u011fi (web sayfalar\u0131, g\u00f6rseller, videolar, API yan\u0131tlar\u0131 gibi) co\u011frafi olarak daha yak\u0131n sunarak gecikmeyi azaltmak ve aktar\u0131m h\u0131z\u0131n\u0131 art\u0131rmakt\u0131r. CloudFront, d\u00fcnya genelinde da\u011f\u0131lm\u0131\u015f &#8220;edge location&#8221; ad\u0131 verilen binlerce sunucu noktas\u0131 arac\u0131l\u0131\u011f\u0131yla bu hizmeti sunar. Kullan\u0131c\u0131 bir i\u00e7eri\u011fi talep etti\u011finde, CloudFront iste\u011fi otomatik olarak ona en yak\u0131n edge location&#8217;a y\u00f6nlendirir. E\u011fer istenen i\u00e7erik bu edge location&#8217;da \u00f6nbelle\u011fe al\u0131nm\u0131\u015fsa, i\u00e7erik do\u011frudan buradan sunulur; de\u011filse, CloudFront i\u00e7eri\u011fi origin sunucusundan (\u00f6rne\u011fin bir EC2 instance, S3 bucket veya API Gateway) \u00e7ekip \u00f6nbelle\u011fe al\u0131r ve ard\u0131ndan kullan\u0131c\u0131ya iletir.<\/p>\n<p>Bu ak\u0131\u015f\u0131n merkezinde \u00f6nbellekleme mekanizmas\u0131 yer al\u0131r. CloudFront, HTTP ba\u015fl\u0131klar\u0131 ve yap\u0131land\u0131r\u0131lm\u0131\u015f \u00f6nbellek politikalar\u0131 arac\u0131l\u0131\u011f\u0131yla hangi i\u00e7eri\u011fin ne kadar s\u00fcreyle \u00f6nbelle\u011fe al\u0131naca\u011f\u0131n\u0131 ve \u00f6nbellek anahtar\u0131n\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 belirler. \u00d6nemli HTTP ba\u015fl\u0131klar\u0131 aras\u0131nda <code>Cache-Control<\/code>, <code>Pragma<\/code>, <code>Expires<\/code> ve <code>Vary<\/code> bulunur. \u00d6zellikle <code>Cache-Control<\/code> ba\u015fl\u0131\u011f\u0131, i\u00e7eri\u011fin \u00f6nbellekleme davran\u0131\u015f\u0131n\u0131 kontrol etmek i\u00e7in en yayg\u0131n kullan\u0131lan ba\u015fl\u0131kt\u0131r. \u00d6rne\u011fin, <code>Cache-Control: public, max-age=3600<\/code> bir i\u00e7eri\u011fin herkes taraf\u0131ndan 1 saat boyunca \u00f6nbelle\u011fe al\u0131nabilece\u011fini belirtirken, <code>Cache-Control: private, max-age=600<\/code> sadece kullan\u0131c\u0131ya \u00f6zel \u00f6nbelleklerde 10 dakika saklanabilece\u011fini ve payla\u015f\u0131ml\u0131 \u00f6nbelleklerde tutulmamas\u0131 gerekti\u011fini ifade eder. <code>Cache-Control: no-cache<\/code> ise i\u00e7eri\u011fin her zaman origin&#8217;den do\u011frulanmas\u0131 gerekti\u011fini, <code>no-store<\/code> ise hi\u00e7bir yerde \u00f6nbelle\u011fe al\u0131nmamas\u0131 gerekti\u011fini belirtir. Bu ba\u015fl\u0131klar\u0131n do\u011fru anla\u015f\u0131lmas\u0131 ve uygulanmas\u0131, g\u00fcvenlik a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir.<\/p>\n<h3>\u00d6nbellek Anahtar\u0131 (Cache Key) Nedir ve Neden Kritik \u00d6neme Sahiptir?<\/h3>\n<p>CloudFront, bir iste\u011fi \u00f6nbellekteki bir yan\u0131tla e\u015fle\u015ftirmek i\u00e7in bir &#8220;\u00f6nbellek anahtar\u0131&#8221; kullan\u0131r. Varsay\u0131lan olarak, bu anahtar iste\u011fin URL&#8217;sinden olu\u015fur. Ancak, ayn\u0131 URL&#8217;ye sahip farkl\u0131 kullan\u0131c\u0131lar i\u00e7in farkl\u0131 yan\u0131tlar d\u00f6nd\u00fcrmesi gereken API&#8217;ler s\u00f6z konusu oldu\u011funda bu yeterli de\u011fildir. \u00d6rne\u011fin, bir API iste\u011fi, kullan\u0131c\u0131n\u0131n kimlik do\u011frulama ba\u015fl\u0131\u011f\u0131na (<code>Authorization<\/code>) veya belirli bir \u00e7erez de\u011ferine (<code>Cookie<\/code>) g\u00f6re farkl\u0131 yan\u0131tlar verebilir. E\u011fer bu ba\u015fl\u0131klar veya \u00e7erezler \u00f6nbellek anahtar\u0131na dahil edilmezse, CloudFront t\u00fcm bu farkl\u0131 istekleri ayn\u0131 anahtarla e\u015fle\u015ftirir ve dolay\u0131s\u0131yla bir kullan\u0131c\u0131n\u0131n yan\u0131t\u0131n\u0131 ba\u015fka bir kullan\u0131c\u0131ya sunabilir.<\/p>\n<p>Bu durumu \u00f6nlemek i\u00e7in CloudFront, \u00f6nbellek anahtar\u0131na dahil edilecek HTTP ba\u015fl\u0131klar\u0131n\u0131, URL sorgu parametrelerini ve \u00e7erezleri belirlemenize olanak tan\u0131yan &#8220;Cache Policy&#8221; (\u00d6nbellek Politikas\u0131) kavram\u0131n\u0131 sunar. G\u00fcvenli bir API \u00f6nbelleklemesi i\u00e7in, hassas ve kullan\u0131c\u0131ya \u00f6zel yan\u0131tlar d\u00f6nd\u00fcren API&#8217;lerde, iste\u011fi benzersiz k\u0131lan t\u00fcm \u00f6\u011felerin (\u00f6zellikle <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131 ve ilgili \u00e7erezler) \u00f6nbellek anahtar\u0131na dahil edilmesi \u015fartt\u0131r. Aksi takdirde, kullan\u0131c\u0131lar aras\u0131 veri s\u0131z\u0131nt\u0131lar\u0131 ka\u00e7\u0131n\u0131lmaz hale gelir. <code>Vary<\/code> HTTP ba\u015fl\u0131\u011f\u0131 da burada devreye girer; origin sunucusu, iste\u011fin hangi ba\u015fl\u0131klar\u0131na g\u00f6re farkl\u0131 yan\u0131tlar d\u00f6nebilece\u011fini CloudFront&#8217;a bu ba\u015fl\u0131k arac\u0131l\u0131\u011f\u0131yla bildirir. \u00d6rne\u011fin, <code>Vary: Authorization, Accept-Encoding<\/code> origin&#8217;in <code>Authorization<\/code> ve <code>Accept-Encoding<\/code> ba\u015fl\u0131klar\u0131na g\u00f6re farkl\u0131 yan\u0131tlar verebilece\u011fini g\u00f6sterir.<\/p>\n<pre><code class=\"language-json\">\n{\n  \"CachePolicy\": {\n    \"Name\": \"G\u00fcvenli API Cache Politikas\u0131\",\n    \"Comment\": \"Kullan\u0131c\u0131ya \u00f6zel API yan\u0131tlar\u0131 i\u00e7in g\u00fcvenli \u00f6nbellekleme\",\n    \"DefaultTTL\": 300,\n    \"MaxTTL\": 600,\n    \"MinTTL\": 0,\n    \"ParametersInCacheKeyAndForwardedToOrigin\": {\n      \"EnableAcceptEncodingBrotli\": false,\n      \"EnableAcceptEncodingGzip\": true,\n      \"CookiesConfig\": {\n        \"CookieBehavior\": \"whitelist\",\n        \"Cookies\": [\n          {\"Name\": \"sessionId\"},\n          {\"Name\": \"userId\"}\n        ]\n      },\n      \"HeadersConfig\": {\n        \"HeaderBehavior\": \"whitelist\",\n        \"Headers\": [\n          {\"Name\": \"Authorization\"},\n          {\"Name\": \"User-Agent\"}\n        ]\n      },\n      \"QueryStringsConfig\": {\n        \"QueryStringBehavior\": \"all\"\n      }\n    }\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnek bir CloudFront Cache Policy tan\u0131m\u0131n\u0131n JSON format\u0131d\u0131r. Burada, \u00f6nbellek anahtar\u0131n\u0131n <code>sessionId<\/code>, <code>userId<\/code> \u00e7erezlerini, <code>Authorization<\/code> ve <code>User-Agent<\/code> ba\u015fl\u0131klar\u0131n\u0131 i\u00e7ermesi, ayr\u0131ca t\u00fcm sorgu dizisi parametrelerini de dikkate almas\u0131 gerekti\u011fini belirtiyoruz. Bu, her kullan\u0131c\u0131ya ve her benzersiz iste\u011fe \u00f6zel bir \u00f6nbellek giri\u015fi olu\u015fturarak veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 engellemeye yard\u0131mc\u0131 olur.<\/p>\n<h2>Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131lar\u0131na Neden Olur?<\/h2>\n<p>Bir CloudFront da\u011f\u0131t\u0131m\u0131n\u0131n yanl\u0131\u015f yap\u0131land\u0131r\u0131lmas\u0131, ki\u015fisel veri s\u0131z\u0131nt\u0131lar\u0131na yol a\u00e7an en yayg\u0131n g\u00fcvenlik a\u00e7\u0131klar\u0131ndan biridir. Bu hatalar genellikle \u00f6nbellek anahtar\u0131n\u0131n (Cache Key) nas\u0131l olu\u015fturuldu\u011fu, HTTP ba\u015fl\u0131klar\u0131n\u0131n nas\u0131l y\u00f6netildi\u011fi ve hassas verilerin nas\u0131l ele al\u0131nd\u0131\u011f\u0131na dair yanl\u0131\u015f anlamalardan kaynaklan\u0131r. Bu b\u00f6l\u00fcmde, s\u0131k kar\u015f\u0131la\u015f\u0131lan yap\u0131land\u0131rma hatalar\u0131n\u0131 ve bunlar\u0131n ki\u015fisel veri s\u0131z\u0131nt\u0131lar\u0131na nas\u0131l yol a\u00e7t\u0131\u011f\u0131n\u0131 detayl\u0131ca inceleyece\u011fiz.<\/p>\n<h3>Ortak Yap\u0131land\u0131rma Hatalar\u0131 ve Sonu\u00e7lar\u0131<\/h3>\n<ol>\n<li>\n        <b><code>Authorization<\/code> Ba\u015fl\u0131\u011f\u0131n\u0131n \u00d6nbellek Anahtar\u0131na Dahil Edilmemesi:<\/b><\/p>\n<p>En kritik hatalardan biridir. Bir API, genellikle kullan\u0131c\u0131n\u0131n kimli\u011fini ve yetkisini do\u011frulamak i\u00e7in <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 (\u00f6rne\u011fin, Bearer Token) kullan\u0131r. E\u011fer CloudFront, bu ba\u015fl\u0131\u011f\u0131 \u00f6nbellek anahtar\u0131na dahil etmezse, farkl\u0131 <code>Authorization<\/code> ba\u015fl\u0131klar\u0131 ile gelen t\u00fcm istekleri ayn\u0131 \u00f6nbellek giri\u015fi olarak de\u011ferlendirebilir. Bunun sonucunda, bir kullan\u0131c\u0131n\u0131n kimlik bilgileriyle yap\u0131lm\u0131\u015f bir iste\u011fin yan\u0131t\u0131 (\u00f6rne\u011fin, kullan\u0131c\u0131n\u0131n profil bilgileri), ba\u015fka bir yetkisiz kullan\u0131c\u0131ya sunulabilir. Bu durum, veri s\u0131z\u0131nt\u0131s\u0131na ve yetkisiz eri\u015fime do\u011frudan neden olur.<\/p>\n<div class=\"expert-tip\">\n          Unutmay\u0131n: Kullan\u0131c\u0131ya \u00f6zel yan\u0131tlar d\u00f6nen her API i\u00e7in <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 \u00f6nbellek anahtar\u0131na <b>kesinlikle<\/b> dahil edin.\n        <\/div>\n<\/li>\n<li>\n        <b>\u00c7erezlerin (Cookies) Yanl\u0131\u015f Y\u00f6netimi:<\/b><\/p>\n<p>Bir\u00e7ok API, oturum y\u00f6netimi veya ki\u015fiselle\u015ftirme i\u00e7in \u00e7erezleri kullan\u0131r. E\u011fer CloudFront yap\u0131land\u0131rmas\u0131nda, kullan\u0131c\u0131ya \u00f6zel veri i\u00e7eren \u00e7erezler do\u011fru \u015fekilde beyaz listeye al\u0131nmaz (whitelist) ve \u00f6nbellek anahtar\u0131na dahil edilmezse, benzer \u015fekilde ba\u015fka bir kullan\u0131c\u0131n\u0131n \u00e7erezleriyle olu\u015fturulan bir iste\u011fin yan\u0131t\u0131, farkl\u0131 bir kullan\u0131c\u0131ya servis edilebilir. \u00d6zellikle oturum ID'si gibi hassas \u00e7erezler bu riski ta\u015f\u0131r.<\/p>\n<\/li>\n<li>\n        <b>URL Sorgu Parametrelerinin Yetersiz \u0130\u015flenmesi:<\/b><\/p>\n<p>Baz\u0131 API'ler, kullan\u0131c\u0131ya \u00f6zel verileri veya filtreleme se\u00e7eneklerini sorgu parametreleri (<code>?param=value<\/code>) arac\u0131l\u0131\u011f\u0131yla iletebilir. E\u011fer CloudFront, bu parametreleri \u00f6nbellek anahtar\u0131na dahil etmezse ve bir sorgu parametresi kullan\u0131c\u0131ya \u00f6zel bilgi i\u00e7eriyorsa (\u00f6rne\u011fin <code>?userId=123<\/code>), \u00f6nbellek farkl\u0131 <code>userId<\/code>'lar i\u00e7in ayn\u0131 yan\u0131t\u0131 d\u00f6nd\u00fcrebilir. Bu durum, yanl\u0131\u015f verinin g\u00f6sterilmesine veya veri s\u0131z\u0131nt\u0131s\u0131na yol a\u00e7abilir. Genellikle <code>QueryStringBehavior<\/code> ayar\u0131 <code>all<\/code> olarak ayarlanarak veya yaln\u0131zca belirli parametreler beyaz listeye al\u0131narak bu durum \u00e7\u00f6z\u00fcl\u00fcr.<\/p>\n<\/li>\n<li>\n        <b><code>Cache-Control: public<\/code> ve <code>max-age<\/code> Ayarlar\u0131n\u0131n Hassas Veriler \u0130\u00e7in Kullan\u0131lmas\u0131:<\/b><\/p>\n<p>Origin sunucusu, yan\u0131t HTTP ba\u015fl\u0131klar\u0131nda <code>Cache-Control: public<\/code> ve uzun bir <code>max-age<\/code> de\u011feri g\u00f6nderdi\u011finde, CloudFront bu i\u00e7eri\u011fi genel \u00f6nbelleklerde uzun s\u00fcre tutabilir. E\u011fer bu yan\u0131t ki\u015fisel veya hassas veriler i\u00e7eriyorsa, bu durum b\u00fcy\u00fck bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 yarat\u0131r. Hassas veriler i\u00e7in <code>Cache-Control: private, no-cache<\/code> veya <code>no-store<\/code> kullan\u0131lmal\u0131, veya CloudFront'ta buna uygun bir \"Cache Policy\" tan\u0131mlanmal\u0131d\u0131r.<\/p>\n<\/li>\n<li>\n        <b>HTTP Metotlar\u0131n\u0131n (GET, POST) \u00d6nbellekleme ile \u0130li\u015fkisi:<\/b><\/p>\n<p>CloudFront genellikle sadece <code>GET<\/code> ve <code>HEAD<\/code> isteklerini \u00f6nbelle\u011fe al\u0131r. <code>POST<\/code>, <code>PUT<\/code>, <code>DELETE<\/code> gibi HTTP metotlar\u0131 genellikle \u00f6nbelle\u011fe al\u0131nmaz \u00e7\u00fcnk\u00fc bu istekler genellikle durumu de\u011fi\u015ftiren (state-changing) i\u015flemlerdir ve her zaman origin'e y\u00f6nlendirilmelidir. Ancak, baz\u0131 yanl\u0131\u015f yap\u0131land\u0131rmalar veya \u00f6zel senaryolar bu davran\u0131\u015fta de\u011fi\u015fikliklere neden olabilir. Bu metotlar\u0131n do\u011fru y\u00f6netildi\u011finden emin olmak, g\u00fcvenlik i\u00e7in \u00f6nemlidir.<\/p>\n<\/li>\n<\/ol>\n<h3>Ger\u00e7ek D\u00fcnya Senaryosu: \"Bankac\u0131l\u0131k API'si M\u00fc\u015fteri Hesap Detaylar\u0131 S\u0131z\u0131nt\u0131s\u0131\"<\/h3>\n<p>Bir banka, m\u00fc\u015fterilerinin hesap bakiyelerini ve i\u015flem ge\u00e7mi\u015flerini sorgulamak i\u00e7in bir mobil uygulama API'si kullanmaktad\u0131r. API iste\u011fi, m\u00fc\u015fterinin kimli\u011fini bir <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131 (JWT token) ile do\u011frular. CloudFront, performans iyile\u015ftirmesi i\u00e7in bu API yan\u0131tlar\u0131n\u0131 \u00f6nbelle\u011fe almak \u00fczere yap\u0131land\u0131r\u0131lm\u0131\u015ft\u0131r. Ancak, CloudFront Cache Policy'sinde <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131 \u00f6nbellek anahtar\u0131na dahil edilmemi\u015ftir.<\/p>\n<p><b>S\u0131z\u0131nt\u0131 Senaryosu:<\/b><\/p>\n<ol>\n<li>M\u00fc\u015fteri A, mobil uygulamadan giri\u015f yapar ve hesap bakiyesini sorgular. Uygulama API'ye <code>Authorization: Bearer <token_A><\/code> ba\u015fl\u0131\u011f\u0131 ile istek g\u00f6nderir.<\/li>\n<li>CloudFront bu iste\u011fi al\u0131r, <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 dikkate almadan origin'e y\u00f6nlendirir. Origin do\u011fru yan\u0131t\u0131 (M\u00fc\u015fteri A'n\u0131n bakiyesi) d\u00f6ner.<\/li>\n<li>CloudFront bu yan\u0131t\u0131 \u00f6nbelle\u011fe al\u0131r. \u00d6nbellek anahtar\u0131 sadece URL'den (\u00f6rne\u011fin <code>\/api\/account\/balance<\/code>) olu\u015ftu\u011fu i\u00e7in, <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131ndaki farkl\u0131l\u0131k g\u00f6z ard\u0131 edilir.<\/li>\n<li>M\u00fc\u015fteri B, mobil uygulamadan giri\u015f yapar ve ayn\u0131 API'ye benzer bir istek g\u00f6nderir (<code>Authorization: Bearer <token_B><\/code>).<\/li>\n<li>CloudFront, iste\u011fi al\u0131r ve \u00f6nbellek anahtar\u0131n\u0131n (yine sadece URL) \u00f6nceden M\u00fc\u015fteri A i\u00e7in olu\u015fturulan anahtarla e\u015fle\u015fti\u011fini g\u00f6r\u00fcr.<\/li>\n<li>CloudFront, \u00f6nbellekteki M\u00fc\u015fteri A'n\u0131n bakiye bilgisini M\u00fc\u015fteri B'ye sunar.<\/li>\n<\/ol>\n<p>Sonu\u00e7: M\u00fc\u015fteri B, kendi hesab\u0131 yerine M\u00fc\u015fteri A'n\u0131n hesap bakiyesini g\u00f6r\u00fcr. Bu durum, sadece ki\u015fisel veri s\u0131z\u0131nt\u0131s\u0131 olmakla kalmaz, ayn\u0131 zamanda ciddi bir yetkilendirme a\u00e7\u0131\u011f\u0131d\u0131r ve bankan\u0131n itibar\u0131n\u0131 derinden sarsar, yasal yapt\u0131r\u0131mlarla kar\u015f\u0131la\u015fmas\u0131na neden olur. Bu t\u00fcr senaryolar\u0131 \u00f6nlemek i\u00e7in \u00f6nbellek politikalar\u0131n\u0131n eksiksiz ve do\u011fru bir \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131 hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<h2>API \u00d6nbellekleme G\u00fcvenli\u011fini Sa\u011flamak \u0130\u00e7in En \u0130yi Uygulamalar Nelerdir?<\/h2>\n<p>API \u00f6nbellekleme g\u00fcvenli\u011fini sa\u011flamak, dikkatli bir planlama ve do\u011fru yap\u0131land\u0131rma gerektirir. Performans avantajlar\u0131ndan \u00f6d\u00fcn vermeden hassas verilerin korunmas\u0131n\u0131 sa\u011flamak i\u00e7in belirli en iyi uygulamalara ba\u011fl\u0131 kalmak \u015fartt\u0131r. \u0130\u015fte bu alandaki temel prensipler ve pratik ad\u0131mlar:<\/p>\n<h3>1. Hassas Verileri \u0130\u00e7eren Yan\u0131tlar \u0130\u00e7in \u00d6zel \u00d6nbellekleme Politikalar\u0131<\/h3>\n<p>T\u00fcm API yan\u0131tlar\u0131n\u0131 ayn\u0131 \u00f6nbellekleme politikas\u0131yla y\u00f6netmek b\u00fcy\u00fck bir hatad\u0131r. Hassas veri i\u00e7eren (\u00f6rne\u011fin ki\u015fisel bilgiler, finansal veriler, sa\u011fl\u0131k kay\u0131tlar\u0131) API yan\u0131tlar\u0131 i\u00e7in ya \u00f6nbelleklemeyi tamamen devre d\u0131\u015f\u0131 b\u0131rak\u0131n ya da \u00e7ok k\u0131sa TTL (Time-to-Live) s\u00fcreleri ve s\u0131k\u0131 \u00f6nbellek anahtar\u0131 kurallar\u0131 uygulay\u0131n. Origin sunucunuzdan <code>Cache-Control: private, no-store<\/code> veya <code>Cache-Control: private, no-cache, max-age=0, must-revalidate<\/code> gibi ba\u015fl\u0131klar g\u00f6ndererek CloudFront'a bu t\u00fcr i\u00e7eriklerin kesinlikle \u00f6nbelle\u011fe al\u0131nmamas\u0131 veya her zaman do\u011frulanmas\u0131 gerekti\u011fini belirtin. CloudFront'ta \u00f6zel bir \"Cache Policy\" olu\u015fturarak, belirli API yollar\u0131 veya ba\u015fl\u0131klar i\u00e7in \u00f6nbelleklemeyi kontrol edebilirsiniz. \u00d6rne\u011fin, <code>\/api\/users\/{id}\/profile<\/code> gibi yollar i\u00e7in TTL'i 0 olarak ayarlay\u0131n ve <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 \u00f6nbellek anahtar\u0131na dahil edin.<\/p>\n<pre><code class=\"language-json\">\n{\n  \"CachePolicy\": {\n    \"Name\": \"NoCache Sensitive API\",\n    \"Comment\": \"Hassas veriler i\u00e7eren API'lar i\u00e7in \u00f6nbellekleme yok\",\n    \"DefaultTTL\": 0,\n    \"MaxTTL\": 0,\n    \"MinTTL\": 0,\n    \"ParametersInCacheKeyAndForwardedToOrigin\": {\n      \"EnableAcceptEncodingBrotli\": false,\n      \"EnableAcceptEncodingGzip\": true,\n      \"CookiesConfig\": {\n        \"CookieBehavior\": \"none\" \n      },\n      \"HeadersConfig\": {\n        \"HeaderBehavior\": \"whitelist\", \n        \"Headers\": [\n          {\"Name\": \"Authorization\"} \n        ]\n      },\n      \"QueryStringsConfig\": {\n        \"QueryStringBehavior\": \"none\" \n      }\n    }\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>DefaultTTL<\/code>, <code>MaxTTL<\/code> ve <code>MinTTL<\/code> de\u011ferlerinin 0 olarak ayarlanmas\u0131, CloudFront'un bu API i\u00e7in hi\u00e7bir yan\u0131t\u0131 \u00f6nbelle\u011fe almayaca\u011f\u0131 anlam\u0131na gelir. Ayr\u0131ca, <code>CookiesConfig<\/code> ve <code>QueryStringsConfig<\/code> <code>none<\/code> olarak ayarlanm\u0131\u015f, ancak <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131 hala ileriye y\u00f6nlendirilerek origin sunucusunun do\u011fru yetkilendirme kontrol\u00fcn\u00fc yapmas\u0131na olanak tan\u0131nm\u0131\u015ft\u0131r.<\/p>\n<h3>2. <code>Authorization<\/code> Ba\u015fl\u0131\u011f\u0131 ve \u00c7erezlerin Do\u011fru Y\u00f6netimi<\/h3>\n<p>Kullan\u0131c\u0131ya \u00f6zel i\u00e7erik sunan API'ler i\u00e7in, CloudFront Cache Policy'nizde <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 ve oturum y\u00f6netimi i\u00e7in kullan\u0131lan t\u00fcm \u00e7erezleri (\u00f6rne\u011fin <code>session_id<\/code>, <code>user_token<\/code>) mutlaka \"whitelist\" i\u00e7ine alarak \u00f6nbellek anahtar\u0131na dahil edin. Bu, farkl\u0131 kimlik do\u011frulama veya oturum bilgilerine sahip her istek i\u00e7in ayr\u0131 bir \u00f6nbellek giri\u015fi olu\u015fturulmas\u0131n\u0131 sa\u011flar, b\u00f6ylece veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 \u00f6nler. Unutulmamal\u0131d\u0131r ki, \u00f6nbellek anahtar\u0131na ne kadar \u00e7ok \u00f6\u011fe eklerseniz, \u00f6nbellekleme oran\u0131 o kadar d\u00fc\u015fer. Bu nedenle, sadece ger\u00e7ekten kritik olan ba\u015fl\u0131klar\u0131 ve \u00e7erezleri dahil etmelisiniz.<\/p>\n<table border=\"1\">\n<thead>\n<tr>\n<th>CloudFront Cache Policy Ayar\u0131<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<th>G\u00fcvenlik \u00d6nemi<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>HeadersConfig: Whitelist Authorization<\/td>\n<td>Authorization ba\u015fl\u0131\u011f\u0131n\u0131 \u00f6nbellek anahtar\u0131na dahil eder ve origin'e iletir.<\/td>\n<td>Kullan\u0131c\u0131 baz\u0131nda veri s\u0131z\u0131nt\u0131s\u0131n\u0131 \u00f6nler. Yetkilendirme kontrol\u00fcn\u00fc garanti eder.<\/td>\n<\/tr>\n<tr>\n<td>CookiesConfig: Whitelist <code>sessionId<\/code>, <code>userId<\/code><\/td>\n<td>Belirli \u00e7erezleri \u00f6nbellek anahtar\u0131na dahil eder ve origin'e iletir.<\/td>\n<td>Oturuma \u00f6zel verilerin do\u011fru kullan\u0131c\u0131lara sunulmas\u0131n\u0131 sa\u011flar.<\/td>\n<\/tr>\n<tr>\n<td>QueryStringsConfig: All veya Whitelist Specific Params<\/td>\n<td>Sorgu dizisi parametrelerini \u00f6nbellek anahtar\u0131na dahil eder.<\/td>\n<td>Parametrelere ba\u011fl\u0131 farkl\u0131 yan\u0131tlar\u0131n do\u011fru \u00f6nbelle\u011fe al\u0131nmas\u0131n\u0131 sa\u011flar.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>3. <code>Vary<\/code> Ba\u015fl\u0131\u011f\u0131n\u0131n Ak\u0131ll\u0131ca Kullan\u0131m\u0131<\/h3>\n<p>Origin sunucunuz, bir iste\u011fin hangi HTTP ba\u015fl\u0131klar\u0131na g\u00f6re farkl\u0131 yan\u0131tlar d\u00f6nd\u00fcrebilece\u011fini <code>Vary<\/code> ba\u015fl\u0131\u011f\u0131 ile CloudFront'a bildirmelidir. \u00d6rne\u011fin, <code>Vary: Authorization, Accept-Encoding<\/code> ba\u015fl\u0131\u011f\u0131, CloudFront'a hem <code>Authorization<\/code> hem de <code>Accept-Encoding<\/code> ba\u015fl\u0131klar\u0131ndaki de\u011fi\u015fikliklerin farkl\u0131 \u00f6nbellek giri\u015fleri gerektirdi\u011fini s\u00f6yler. Bu, s\u0131k\u0131\u015ft\u0131rma (gzip, brotli) ve yetkilendirme gibi farkl\u0131 de\u011fi\u015fkenler i\u00e7in do\u011fru \u00f6nbellekleme davran\u0131\u015f\u0131n\u0131 garanti eder.<\/p>\n<h3>4. K\u0131sa TTL (Time-to-Live) Ayarlar\u0131<\/h3>\n<p>Hassas veya s\u0131k g\u00fcncellenen veriler i\u00e7in \u00e7ok k\u0131sa TTL de\u011ferleri (\u00f6rne\u011fin 0 saniye veya birka\u00e7 saniye) kullan\u0131n. Bu, verilerin \u00f6nbellekte kalma s\u00fcresini minimize eder ve veri g\u00fcncelli\u011fini art\u0131r\u0131r. E\u011fer bir API'nin yan\u0131t\u0131 anl\u0131k olarak de\u011fi\u015febiliyorsa veya \u00e7ok hassas bilgiler i\u00e7eriyorsa, TTL'i s\u0131f\u0131ra ayarlamak en g\u00fcvenli yakla\u015f\u0131md\u0131r. Bu durumda CloudFront yine de origin'e bir istek g\u00f6nderecek ancak yan\u0131t\u0131 \u00f6nbelle\u011fe almayacakt\u0131r.<\/p>\n<h3>5. \u00d6nbellek Ge\u00e7ersiz K\u0131lma (Cache Invalidation)<\/h3>\n<p>Bir veri taban\u0131nda ki\u015fisel bilgiler g\u00fcncellendi\u011finde veya silindi\u011finde, CloudFront \u00f6nbelle\u011finde depolanan ilgili i\u00e7eri\u011fin an\u0131nda ge\u00e7ersiz k\u0131l\u0131nmas\u0131 (invalidation) gerekir. CloudFront, belirli yollar veya t\u00fcm \u00f6nbellek i\u00e7in ge\u00e7ersiz k\u0131lma i\u015flemleri yapman\u0131za olanak tan\u0131r. Bu, eski ve potansiyel olarak yanl\u0131\u015f veya hassas verilerin son kullan\u0131c\u0131lara sunulmas\u0131n\u0131 engeller. Ge\u00e7ersiz k\u0131lma API'leri, otomasyon s\u00fcre\u00e7lerine entegre edilerek veri de\u011fi\u015fiklikleriyle e\u015f zamanl\u0131 \u00e7al\u0131\u015fabilir.<\/p>\n<pre><code class=\"language-bash\">\naws cloudfront create-invalidation --distribution-id E123EXAMPLE --paths \"\/api\/users\/123\/*\"\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, belirli bir kullan\u0131c\u0131ya ait API yan\u0131tlar\u0131n\u0131n \u00f6nbelle\u011fini an\u0131nda ge\u00e7ersiz k\u0131lar. D\u00fczenli olarak veya \u00f6nemli veri de\u011fi\u015fikliklerinde bu tip invalidasyon i\u015flemlerini otomatikle\u015ftirmek, g\u00fcvenlik a\u00e7\u0131s\u0131ndan kritik bir ad\u0131md\u0131r.<\/p>\n<h3>6. Lambda@Edge Kullan\u0131m\u0131<\/h3>\n<p>Lambda@Edge, CloudFront'un edge location'lar\u0131nda sunucu taraf\u0131 kod \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r. Bu \u00f6zellik, CloudFront'un varsay\u0131lan \u00f6nbellekleme ve y\u00f6nlendirme davran\u0131\u015flar\u0131n\u0131 geni\u015fletmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. \u00d6rne\u011fin:<\/p>\n<ul>\n<li><b>Gelen istekleri incelemek:<\/b> Hassas ba\u015fl\u0131klar\u0131 veya sorgu parametrelerini kald\u0131rarak \u00f6nbellek anahtar\u0131n\u0131 temizleyebilir veya iste\u011fi belirli bir mant\u0131\u011fa g\u00f6re yeniden y\u00f6nlendirebilirsiniz.<\/li>\n<li><b>Giden yan\u0131tlar\u0131 de\u011fi\u015ftirmek:<\/b> Origin'den gelen yan\u0131t ba\u015fl\u0131klar\u0131n\u0131 (\u00f6rne\u011fin <code>Cache-Control<\/code> ba\u015fl\u0131\u011f\u0131n\u0131) g\u00fcvenlik gereksinimlerine g\u00f6re de\u011fi\u015ftirebilirsiniz.<\/li>\n<li><b>Ek kimlik do\u011frulama ve yetkilendirme katmanlar\u0131 eklemek:<\/b> CloudFront'a ula\u015fan istekler \u00fczerinde ek g\u00fcvenlik kontrolleri uygulayabilirsiniz.<\/li>\n<\/ul>\n<p>Lambda@Edge ile karma\u015f\u0131k senaryolarda dahi g\u00fcvenli ve esnek \u00f6nbellekleme politikalar\u0131 olu\u015fturmak m\u00fcmk\u00fcnd\u00fcr, ancak kodun do\u011fru ve g\u00fcvenli bir \u015fekilde yaz\u0131lmas\u0131 b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<\/p>\n<h3>7. G\u00fcvenlik Katmanlar\u0131n\u0131 Birle\u015ftirme (WAF, IAM)<\/h3>\n<p>CloudFront da\u011f\u0131t\u0131m\u0131n\u0131z\u0131 AWS WAF (Web Application Firewall) ile entegre ederek SQL enjeksiyonu, XSS gibi yayg\u0131n web sald\u0131r\u0131lar\u0131na kar\u015f\u0131 ek bir koruma katman\u0131 ekleyebilirsiniz. Ayr\u0131ca, AWS IAM (Identity and Access Management) kullanarak CloudFront da\u011f\u0131t\u0131m\u0131n\u0131z\u0131 ve ilgili AWS kaynaklar\u0131n\u0131z\u0131 y\u00f6neten kullan\u0131c\u0131lara en az ayr\u0131cal\u0131k ilkesini uygulay\u0131n. Bu, yetkisiz yap\u0131land\u0131rma de\u011fi\u015fikliklerini \u00f6nler ve genel g\u00fcvenlik duru\u015funuzu g\u00fc\u00e7lendirir.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: G\u00fcvenli\u011finizi sadece CloudFront ayarlar\u0131na b\u0131rakmay\u0131n. Origin sunucunuzda da s\u0131k\u0131 kimlik do\u011frulama, yetkilendirme ve veri do\u011frulama mekanizmalar\u0131 bulundu\u011fundan emin olun. Katmanl\u0131 g\u00fcvenlik her zaman en iyisidir.\n<\/div>\n<h2>\u0130leri D\u00fczey G\u00fcvenlik \u0130pu\u00e7lar\u0131 ve \u0130zleme Stratejileri<\/h2>\n<p>G\u00fcvenli API \u00f6nbelleklemesi sadece do\u011fru yap\u0131land\u0131rmalarla s\u0131n\u0131rl\u0131 de\u011fildir; ayn\u0131 zamanda s\u00fcrekli izleme ve ileri d\u00fczey g\u00fcvenlik mekanizmalar\u0131n\u0131n entegrasyonunu da gerektirir. Deneyimli kullan\u0131c\u0131lar ve g\u00fcvenlik uzmanlar\u0131 i\u00e7in a\u015fa\u011f\u0131daki ipu\u00e7lar\u0131, sistemlerinizi daha da g\u00fc\u00e7lendirmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>1. \u0130mzal\u0131 URL'ler (Signed URLs) ve \u0130mzal\u0131 \u00c7erezler (Signed Cookies)<\/h3>\n<p>Hassas verilere eri\u015fimi s\u0131k\u0131 bir \u015fekilde kontrol etmek i\u00e7in CloudFront'un \u0130mzal\u0131 URL'ler ve \u0130mzal\u0131 \u00c7erezler \u00f6zelli\u011fini kullanabilirsiniz. Bu \u00f6zellikler, i\u00e7eri\u011fe belirli bir s\u00fcre boyunca veya belirli IP adreslerinden eri\u015fim yetkisi verir. \u00d6zellikle \u00f6zel i\u00e7erik (premium videolar, ki\u015fisel belgeler) da\u011f\u0131t\u0131rken veya do\u011frudan CloudFront'tan \u00e7ekilen hassas API yan\u0131tlar\u0131 i\u00e7in uygundur. Yetkisiz eri\u015fimi engellemek i\u00e7in her iste\u011fin imzalanm\u0131\u015f bir URL veya \u00e7erezle gelmesini zorunlu k\u0131lar.<\/p>\n<h3>2. CloudFront Eri\u015fim G\u00fcnl\u00fcklerinin (Access Logs) Analizi<\/h3>\n<p>CloudFront, t\u00fcm istekler i\u00e7in kapsaml\u0131 eri\u015fim g\u00fcnl\u00fckleri (Access Logs) sa\u011flar ve bunlar\u0131 bir S3 bucket'a teslim eder. Bu g\u00fcnl\u00fckler, da\u011f\u0131t\u0131m\u0131n\u0131za gelen trafik hakk\u0131nda detayl\u0131 bilgiler i\u00e7erir: IP adresleri, kullan\u0131c\u0131 arac\u0131lar\u0131, HTTP metodu, istenen URL, \u00f6nbellek isabeti\/\u0131skalamas\u0131 (cache hit\/miss) durumu ve daha fazlas\u0131. Bu g\u00fcnl\u00fckleri d\u00fczenli olarak analiz etmek (\u00f6rne\u011fin AWS Athena veya di\u011fer SIEM ara\u00e7lar\u0131 kullanarak), olas\u0131 g\u00fcvenlik ihlallerini, anormal eri\u015fim desenlerini veya yap\u0131land\u0131rma hatalar\u0131ndan kaynaklanan sorunlar\u0131 tespit etmenizi sa\u011flar. \u00d6zellikle \u00f6nbellek isabet oranlar\u0131n\u0131 ve beklenmedik <code>cache hit<\/code> durumlar\u0131n\u0131 yak\u0131ndan takip etmek, yanl\u0131\u015fl\u0131kla \u00f6nbelle\u011fe al\u0131nm\u0131\u015f hassas verilerin s\u0131z\u0131nt\u0131s\u0131n\u0131 i\u015faret edebilir.<\/p>\n<h3>3. AWS CloudWatch Metrikleri ve Alarmlar\u0131<\/h3>\n<p>CloudFront, da\u011f\u0131t\u0131m\u0131n\u0131z\u0131n performans\u0131 ve durumu hakk\u0131nda CloudWatch'a metrikler g\u00f6nderir (\u00f6rne\u011fin toplam istek say\u0131s\u0131, hata oranlar\u0131, \u00f6nbellek isabet oran\u0131). Bu metrikler \u00fczerinde alarmlar olu\u015fturarak kritik de\u011fi\u015fikliklerde (\u00f6rne\u011fin <code>4xx<\/code> veya <code>5xx<\/code> hata oranlar\u0131nda ani art\u0131\u015flar) an\u0131nda bildirim alabilirsiniz. Anormal \u00f6nbellek isabet oranlar\u0131 veya belirli API yollar\u0131na gelen \u015f\u00fcpheli istek art\u0131\u015flar\u0131 i\u00e7in alarmlar kurmak, potansiyel g\u00fcvenlik sorunlar\u0131n\u0131 erken a\u015famada tespit etmenizi sa\u011flar.<\/p>\n<h3>4. D\u00fczenli G\u00fcvenlik Denetimleri ve Penetrasyon Testleri<\/h3>\n<p>CloudFront ve API yap\u0131land\u0131rmalar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00fcvenlik denetimlerinden ge\u00e7irin. Penetrasyon testleri (pentest), sistemlerinizdeki zafiyetleri, yanl\u0131\u015f yap\u0131land\u0131rmalar\u0131 ve potansiyel veri s\u0131z\u0131nt\u0131s\u0131 yollar\u0131n\u0131 proaktif olarak ke\u015ffetmenize yard\u0131mc\u0131 olur. Bu testler, d\u0131\u015far\u0131dan bir sald\u0131rgan\u0131n bak\u0131\u015f a\u00e7\u0131s\u0131yla sisteminizi de\u011ferlendirmenizi sa\u011flar ve g\u00f6zden ka\u00e7an g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 ortaya \u00e7\u0131karabilir.<\/p>\n<h3>5. G\u00fcvenlik Best Practice'lerinin S\u00fcrekli Takibi<\/h3>\n<p>AWS, CloudFront ve genel bulut g\u00fcvenli\u011fi i\u00e7in s\u00fcrekli olarak yeni \u00f6zellikler ve en iyi uygulamalar yay\u0131nlamaktad\u0131r. Bu g\u00fcncellemeleri takip etmek, sistemlerinizi en son g\u00fcvenlik standartlar\u0131na g\u00f6re g\u00fcncel tutman\u0131z\u0131 sa\u011flar. G\u00fcvenlik b\u00fcltenlerine abone olmak ve AWS'in g\u00fcvenlik bloglar\u0131n\u0131 okumak, bilgi birikiminizi g\u00fcncel tutmak i\u00e7in faydal\u0131d\u0131r.<\/p>\n<p>Mobil uyumlulu\u011fun genel olarak CloudFront'un kendisiyle do\u011frudan bir ili\u015fkisi olmasa da, CloudFront'un web siteleri ve uygulamalar i\u00e7in i\u00e7erik da\u011f\u0131t\u0131m\u0131nda kritik rol oynad\u0131\u011f\u0131n\u0131 unutmay\u0131n. Modern web geli\u015ftirme pratiklerinde, duyarl\u0131 tasar\u0131m (responsive design) ve medya sorgular\u0131 (media queries) ile mobil uyumluluk sa\u011flan\u0131r. CloudFront, bu mobil uyumlu i\u00e7eri\u011fin son kullan\u0131c\u0131lara h\u0131zl\u0131 ve g\u00fcvenli bir \u015fekilde ula\u015fmas\u0131n\u0131 sa\u011flayarak dolayl\u0131 yoldan mobil deneyimi iyile\u015ftirir.<\/p>\n<pre><code class=\"language-css\">\n\/* Mobil cihazlar i\u00e7in medya sorgusu \u00f6rne\u011fi *\/\n@media (max-width: 768px) {\n  .container {\n    width: 100%;\n    padding: 15px;\n  }\n  .image-gallery img {\n    max-width: 100%;\n    height: auto;\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki CSS kodu, mobil cihazlar i\u00e7in bir medya sorgusu \u00f6rne\u011fidir. CloudFront, bu CSS dosyas\u0131n\u0131 \u00f6nbelle\u011fe al\u0131p h\u0131zl\u0131 bir \u015fekilde da\u011f\u0131tarak mobil cihazlarda uygulaman\u0131z\u0131n daha h\u0131zl\u0131 y\u00fcklenmesine katk\u0131da bulunur. Ancak, CloudFront'un kendisi direkt olarak bu t\u00fcr \"mobil uyumlu HTML\" \u00fcretmez; o sadece mobil uyumlu i\u00e7eri\u011fin da\u011f\u0131t\u0131m\u0131n\u0131 optimize eder.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, performans iyile\u015ftirmesi sa\u011flama vaadini tersine \u00e7evirerek ciddi ki\u015fisel veri s\u0131z\u0131nt\u0131lar\u0131na yol a\u00e7abilen kritik bir g\u00fcvenlik zafiyetidir. Bu makalede ele ald\u0131\u011f\u0131m\u0131z gibi, API \u00f6nbelleklemesi yap\u0131l\u0131rken <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131, \u00e7erezler ve sorgu parametreleri gibi kimlik do\u011frulama ve yetkilendirme ile ilgili unsurlar\u0131n \u00f6nbellek anahtar\u0131na do\u011fru bir \u015fekilde dahil edilmesi hayati \u00f6nem ta\u015f\u0131maktad\u0131r. CloudFront'un Cache Policy mekanizmas\u0131n\u0131 anlamak ve do\u011fru uygulamak, hassas verileri korurken ayn\u0131 zamanda performans hedeflerinize ula\u015fman\u0131n anahtar\u0131d\u0131r. G\u00fcvenlik, tek seferlik bir g\u00f6rev de\u011fil, s\u00fcrekli bir s\u00fcre\u00e7tir; bu nedenle d\u00fczenli denetimler, izleme ve en iyi uygulamalar\u0131n takibi vazge\u00e7ilmezdir. Katmanl\u0131 bir g\u00fcvenlik yakla\u015f\u0131m\u0131 benimseyerek (WAF, Lambda@Edge, IAM), API'lerinizin hem h\u0131zl\u0131 hem de g\u00fcvenli oldu\u011fundan emin olabilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li>\n        <b>S: CloudFront'ta <code>Cache-Control: private<\/code> kullanmak hassas veriler i\u00e7in yeterli mi?<\/b><\/p>\n<p>C: <code>Cache-Control: private<\/code> ba\u015fl\u0131\u011f\u0131, i\u00e7eri\u011fin sadece \u00f6zel \u00f6nbelleklerde (\u00f6rne\u011fin taray\u0131c\u0131 \u00f6nbelle\u011finde) saklanabilece\u011fini ve payla\u015f\u0131ml\u0131 CDN \u00f6nbelleklerinde tutulmamas\u0131 gerekti\u011fini belirtir. Ancak, bu ba\u015fl\u0131k tek ba\u015f\u0131na yeterli de\u011fildir. CloudFront yap\u0131land\u0131rman\u0131zda (Cache Policy), bu i\u00e7eri\u011fin ger\u00e7ekten \u00f6nbelle\u011fe al\u0131nmamas\u0131n\u0131 veya <code>Authorization<\/code> gibi ba\u015fl\u0131klar\u0131n \u00f6nbellek anahtar\u0131na dahil edilmesini sa\u011flamal\u0131s\u0131n\u0131z. En g\u00fcvenli yakla\u015f\u0131m <code>no-cache<\/code> veya <code>no-store<\/code> ile birlikte k\u0131sa bir TTL kullanmakt\u0131r.<\/p>\n<\/li>\n<li>\n        <b>S: API'm sadece <code>GET<\/code> istekleri kullan\u0131yor, yine de \u00f6nbellekleme riskli mi?<\/b><\/p>\n<p>C: Evet, risklidir. <code>GET<\/code> istekleri varsay\u0131lan olarak \u00f6nbelle\u011fe al\u0131nabilir ve e\u011fer bu <code>GET<\/code> istekleri kullan\u0131c\u0131ya \u00f6zel veya hassas veri d\u00f6nd\u00fcr\u00fcyorsa, yanl\u0131\u015f \u00f6nbellek anahtar\u0131 yap\u0131land\u0131rmalar\u0131 veri s\u0131z\u0131nt\u0131lar\u0131na yol a\u00e7abilir. HTTP metodu \u00f6nemli olsa da, esas risk, \u00f6nbellek anahtar\u0131n\u0131n iste\u011fin t\u00fcm ay\u0131rt edici \u00f6zelliklerini kapsamamas\u0131d\u0131r.<\/p>\n<\/li>\n<li>\n        <b>S: CloudFront \u00f6nbelle\u011fini nas\u0131l tamamen temizleyebilirim?<\/b><\/p>\n<p>C: CloudFront \u00f6nbelle\u011fini tamamen temizlemek i\u00e7in bir \"invalidation\" (ge\u00e7ersiz k\u0131lma) i\u015flemi yapman\u0131z gerekir. Bu i\u015flemi AWS Management Console, AWS CLI veya AWS SDK'lar arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirebilirsiniz. <code>\/*<\/code> yolunu belirterek t\u00fcm da\u011f\u0131t\u0131m \u00f6nbelle\u011fini ge\u00e7ersiz k\u0131labilirsiniz. Ancak bu i\u015flem maliyetli olabilir ve ge\u00e7ici bir performans d\u00fc\u015f\u00fc\u015f\u00fcne neden olabilir, bu y\u00fczden dikkatli kullan\u0131lmal\u0131d\u0131r.<\/p>\n<\/li>\n<li>\n        <b>S: Lambda@Edge ile \u00f6nbellekleme g\u00fcvenli\u011fini nas\u0131l art\u0131rabilirim?<\/b><\/p>\n<p>C: Lambda@Edge ile request ve response ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn farkl\u0131 a\u015famalar\u0131nda \u00f6zel mant\u0131klar \u00e7al\u0131\u015ft\u0131rabilirsiniz. \u00d6rne\u011fin, gelen iste\u011fi inceleyerek hassas ba\u015fl\u0131klar\u0131 \u00f6nbellek anahtar\u0131ndan \u00f6nce kald\u0131rabilir, yetkilendirme denetimleri yapabilir veya origin'den gelen yan\u0131t ba\u015fl\u0131klar\u0131n\u0131 (\u00f6rn. <code>Cache-Control<\/code>) g\u00fcvenlik gereksinimlerine g\u00f6re de\u011fi\u015ftirebilirsiniz. Bu, CloudFront'un varsay\u0131lan davran\u0131\u015f\u0131n\u0131n \u00f6tesinde karma\u015f\u0131k g\u00fcvenlik politikalar\u0131 uygulaman\u0131za olanak tan\u0131r.<\/p>\n<\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, API&#8217;ler arac\u0131l\u0131\u011f\u0131yla iletilen ki\u015fisel verilerin s\u0131zmas\u0131na yol a\u00e7abilir. API \u00f6nbellekleme g\u00fcvenli\u011fi, CDN ayarlar\u0131nda&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1341],"tags":[],"class_list":{"0":"post-32814","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-cloud","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi<\/title>\n<meta name=\"description\" content=\"Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, API&#039;ler arac\u0131l\u0131\u011f\u0131yla iletilen ki\u015fisel verilerin s\u0131zmas\u0131na yol a\u00e7abilir. API \u00f6nbellekleme g\u00fcvenli\u011fi, CDN ayarlar\u0131nda titizlikle ele al\u0131nmas\u0131 gereken kritik bir konudur.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi\" \/>\n<meta property=\"og:description\" content=\"Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, API&#039;ler arac\u0131l\u0131\u011f\u0131yla iletilen ki\u015fisel verilerin s\u0131zmas\u0131na yol a\u00e7abilir. API \u00f6nbellekleme g\u00fcvenli\u011fi, CDN ayarlar\u0131nda titizlikle ele al\u0131nmas\u0131 gereken kritik bir konudur.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-26T04:30:58+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi\",\"datePublished\":\"2025-10-26T04:30:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/\"},\"wordCount\":4380,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Cloud\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/\",\"name\":\"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-26T04:30:58+00:00\",\"description\":\"Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, API'ler arac\u0131l\u0131\u011f\u0131yla iletilen ki\u015fisel verilerin s\u0131zmas\u0131na yol a\u00e7abilir. API \u00f6nbellekleme g\u00fcvenli\u011fi, CDN ayarlar\u0131nda titizlikle ele al\u0131nmas\u0131 gereken kritik bir konudur.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi","description":"Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, API'ler arac\u0131l\u0131\u011f\u0131yla iletilen ki\u015fisel verilerin s\u0131zmas\u0131na yol a\u00e7abilir. API \u00f6nbellekleme g\u00fcvenli\u011fi, CDN ayarlar\u0131nda titizlikle ele al\u0131nmas\u0131 gereken kritik bir konudur.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/","og_locale":"tr_TR","og_type":"article","og_title":"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi","og_description":"Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, API'ler arac\u0131l\u0131\u011f\u0131yla iletilen ki\u015fisel verilerin s\u0131zmas\u0131na yol a\u00e7abilir. API \u00f6nbellekleme g\u00fcvenli\u011fi, CDN ayarlar\u0131nda titizlikle ele al\u0131nmas\u0131 gereken kritik bir konudur.","og_url":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-26T04:30:58+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi","datePublished":"2025-10-26T04:30:58+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/"},"wordCount":4380,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Cloud"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/","url":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/","name":"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-26T04:30:58+00:00","description":"Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir CloudFront \u00f6nbelle\u011fi, API'ler arac\u0131l\u0131\u011f\u0131yla iletilen ki\u015fisel verilerin s\u0131zmas\u0131na yol a\u00e7abilir. API \u00f6nbellekleme g\u00fcvenli\u011fi, CDN ayarlar\u0131nda titizlikle ele al\u0131nmas\u0131 gereken kritik bir konudur.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/yanlis-yapilandirilmis-cloudfront-cache-nasil-kisisel-veri-sizintisina-yol-acar-api-onbellekleme-guvenligi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f CloudFront Cache Nas\u0131l Ki\u015fisel Veri S\u0131z\u0131nt\u0131s\u0131na Yol A\u00e7ar? API \u00d6nbellekleme G\u00fcvenli\u011fi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=32814"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32814\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}