{"id":35256,"date":"2025-11-27T13:31:19","date_gmt":"2025-11-27T10:31:19","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/"},"modified":"2025-11-27T13:31:19","modified_gmt":"2025-11-27T10:31:19","slug":"cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/","title":{"rendered":"CKS Notlar\u0131: Web&#8217;de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?"},"content":{"rendered":"<p><body><\/p>\n<div class=\"container\">\n<p>Web sitelerindeki resim g\u00fcvenli\u011fi, siber tehditlere kar\u015f\u0131 hayati bir savunma hatt\u0131d\u0131r. CKS Notlar\u0131 ile g\u00f6rsellerinizi koruman\u0131n yollar\u0131n\u0131, temel riskleri ve pratik \u00e7\u00f6z\u00fcmleri ke\u015ffedin. Bu rehberle resim g\u00fcvenli\u011finizi g\u00fc\u00e7lendirin.<\/p>\n<p>Dijital \u00e7a\u011fda g\u00f6rseller, web i\u00e7eri\u011finin ayr\u0131lmaz bir par\u00e7as\u0131 haline geldi. Sosyal medya platformlar\u0131ndan e-ticaret sitelerine, haber portallar\u0131ndan ki\u015fisel bloglara kadar her yerde kar\u015f\u0131m\u0131za \u00e7\u0131k\u0131yorlar. Ancak bu g\u00f6rsel yo\u011funlu\u011fu, beraberinde \u00f6nemli g\u00fcvenlik risklerini de getiriyor. Nitekim, resimler sadece birer piksel y\u0131\u011f\u0131n\u0131 de\u011fildir; i\u00e7erisinde hassas metadata (EXIF) ta\u015f\u0131yabilir, zararl\u0131 kod enjekte etmek i\u00e7in bir vekt\u00f6r olarak kullan\u0131labilir veya telif haklar\u0131 ihlallerine davetiye \u00e7\u0131karabilir. Bu nedenle, resim g\u00fcvenli\u011fi, web varl\u0131\u011f\u0131n\u0131z\u0131n genel siber g\u00fcvenlik stratejisinin kritik bir bile\u015fenidir.<\/p>\n<p>Peki, bir resim dosyas\u0131 ne gibi tehditler olu\u015fturabilir? \u0130lk olarak, dosya y\u00fckleme zafiyetleri arac\u0131l\u0131\u011f\u0131yla k\u00f6t\u00fc ama\u00e7l\u0131 yaz\u0131l\u0131mlar sunucunuza s\u0131zabilir. Bir sald\u0131rgan, asl\u0131nda bir web shell olan bir dosyay\u0131 bir resim uzant\u0131s\u0131yla y\u00fcklemeye \u00e7al\u0131\u015fabilir. E\u011fer sunucu taraf\u0131nda yeterli do\u011frulama yoksa, bu dosya sunucuda \u00e7al\u0131\u015ft\u0131r\u0131larak t\u00fcm sistemin kontrol\u00fcn\u00fc ele ge\u00e7irebilir. \u0130kinci olarak, resimlerin i\u00e7erdi\u011fi EXIF verileri, kullan\u0131c\u0131lar\u0131n konum bilgileri, kamera modelleri veya \u00e7ekim tarihleri gibi ki\u015fisel veya hassas bilgileri if\u015fa edebilir. Bu durum, \u00f6zellikle profesyonel foto\u011fraf\u00e7\u0131lar veya belirli konumlarla ilgili i\u00e7erik yay\u0131nlayan platformlar i\u00e7in b\u00fcy\u00fck bir gizlilik riski ta\u015f\u0131r.<\/p>\n<p>Ayr\u0131ca, k\u00f6t\u00fc ama\u00e7l\u0131 g\u00f6rseller XSS (Cross-Site Scripting) sald\u0131r\u0131lar\u0131na yol a\u00e7abilir. \u00d6rne\u011fin, bir resmin metadata alan\u0131na veya adland\u0131rmas\u0131na enjekte edilen bir JavaScript kodu, web sayfas\u0131nda g\u00f6r\u00fcnt\u00fclendi\u011finde \u00e7al\u0131\u015farak kullan\u0131c\u0131lar\u0131n oturum bilgilerini \u00e7alabilir veya istenmeyen i\u00e7erik g\u00f6sterebilir. Bu t\u00fcr sald\u0131r\u0131lar, marka itibar\u0131 \u00fczerinde ciddi tahribat yarat\u0131rken, kullan\u0131c\u0131 g\u00fcvenini de derinden sarsar. Sonu\u00e7 olarak, resim g\u00fcvenli\u011fini g\u00f6z ard\u0131 etmek, sadece teknik bir zafiyet de\u011fil, ayn\u0131 zamanda hukuki sorunlara ve ticari kay\u0131plara yol a\u00e7abilecek potansiyel bir felakettir. \u0130\u015fte bu y\u00fczden, g\u00f6rsellerinizi korumak i\u00e7in proaktif ad\u0131mlar atmak hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Peki, bu riskleri anlamak i\u00e7in \u00f6nce temel kavramlara bir g\u00f6z atal\u0131m.<\/p>\n<h2>Temel Kavramlar: Resim G\u00fcvenli\u011finin Anatomisi Nedir?<\/h2>\n<p>Resim g\u00fcvenli\u011fi, \u00e7ok katmanl\u0131 bir yakla\u015f\u0131m gerektiren geni\u015f bir aland\u0131r. G\u00f6rsellerle ilgili potansiyel tehditleri anlamak i\u00e7in baz\u0131 temel kavramlar\u0131 bilmek \u015fartt\u0131r. Bu kavramlar, g\u00f6rsellerin ya\u015fam d\u00f6ng\u00fcs\u00fc boyunca ortaya \u00e7\u0131kabilecek g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 ve bunlara kar\u015f\u0131 al\u0131nabilecek \u00f6nlemleri anlamam\u0131z\u0131 sa\u011flar.<\/p>\n<p><strong>Metadata (EXIF):<\/strong> G\u00f6rsel dosyalar\u0131n\u0131n i\u00e7ine g\u00f6m\u00fcl\u00fc olan ek bilgilerdir. Dijital foto\u011fraf makineleri, ak\u0131ll\u0131 telefonlar ve di\u011fer cihazlar, bir foto\u011fraf \u00e7ekildi\u011finde otomatik olarak bu verileri ekler. EXIF verileri, foto\u011fraf\u0131n \u00e7ekildi\u011fi tarih ve saat, kamera modeli, diyafram a\u00e7\u0131kl\u0131\u011f\u0131, enstantane h\u0131z\u0131, ISO ayarlar\u0131, GPS koordinatlar\u0131 gibi bilgileri i\u00e7erebilir. Her ne kadar bu veriler profesyonel foto\u011fraf\u00e7\u0131lar i\u00e7in faydal\u0131 olsa da, herkese a\u00e7\u0131k bir web sitesinde yay\u0131nland\u0131\u011f\u0131nda ciddi gizlilik riskleri olu\u015fturabilir. \u00d6rne\u011fin, bir kullan\u0131c\u0131n\u0131n ki\u015fisel bir foto\u011fraf\u0131ndan s\u0131zan konum bilgisi, k\u00f6t\u00fc niyetli ki\u015filerin eline ge\u00e7ti\u011finde tehlikeli sonu\u00e7lar do\u011furabilir. Bu nedenle, web&#8217;e y\u00fcklenen g\u00f6rsellerden EXIF verilerinin temizlenmesi genellikle en iyi uygulamad\u0131r.<\/p>\n<p><strong>Dosya Y\u00fckleme G\u00fcvenli\u011fi:<\/strong> Bir web uygulamas\u0131n\u0131n en kritik g\u00fcvenlik a\u00e7\u0131klar\u0131ndan biri, kullan\u0131c\u0131lar\u0131n dosya y\u00fcklemesine izin veren b\u00f6l\u00fcmlerdir. E\u011fer bu s\u00fcre\u00e7 yeterince g\u00fcvenli de\u011filse, sald\u0131rganlar sunucuya k\u00f6t\u00fc ama\u00e7l\u0131 kod i\u00e7eren dosyalar y\u00fckleyebilirler. Bu dosyalar resim uzant\u0131s\u0131yla (\u00f6rne\u011fin <code>.jpg<\/code>, <code>.png<\/code>) gizlenmi\u015f bir web shell olabilece\u011fi gibi, sunucuda do\u011frudan \u00e7al\u0131\u015ft\u0131r\u0131labilir bir script de olabilir. Dolay\u0131s\u0131yla, dosya y\u00fckleme s\u00fcre\u00e7lerinde dosya tipinin, boyutunun ve i\u00e7eri\u011finin sunucu taraf\u0131nda s\u0131k\u0131 bir \u015fekilde do\u011frulanmas\u0131, bu t\u00fcr sald\u0131r\u0131lar\u0131 \u00f6nlemek i\u00e7in elzemdir. Ayr\u0131ca, y\u00fcklenen dosyalar\u0131n sunucu k\u00f6k dizini d\u0131\u015f\u0131ndaki g\u00fcvenli bir klas\u00f6rde depolanmas\u0131 ve rastgele adland\u0131r\u0131larak orijinal isimlerinin kullan\u0131lmamas\u0131 da \u00f6nemlidir.<\/p>\n<p><strong>Web Sunucusu Konfig\u00fcrasyonu:<\/strong> G\u00f6rsel dosyalar\u0131n\u0131n g\u00fcvenli\u011fi, ayn\u0131 zamanda web sunucusunun do\u011fru \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131na da ba\u011fl\u0131d\u0131r. Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f sunucular, dizin listelemeye izin verebilir, bu da sald\u0131rganlar\u0131n sunucudaki t\u00fcm dosyalar\u0131 g\u00f6rmesine olanak tan\u0131r. Ayr\u0131ca, g\u00f6rsellerin depoland\u0131\u011f\u0131 dizinlere \u00e7al\u0131\u015ft\u0131r\u0131labilir izinlerin verilmemesi, k\u00f6t\u00fc ama\u00e7l\u0131 scriptlerin \u00e7al\u0131\u015fmas\u0131n\u0131 engeller. <code>.htaccess<\/code> dosyalar\u0131 veya sunucu konfig\u00fcrasyonlar\u0131 arac\u0131l\u0131\u011f\u0131yla bu izinlerin do\u011fru ayarlanmas\u0131, genel resim g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<p><strong>\u0130\u00e7erik Teslim A\u011flar\u0131 (CDN):<\/strong> CDN&#8217;ler, g\u00f6rseller gibi statik i\u00e7eri\u011fi son kullan\u0131c\u0131lara co\u011frafi olarak yak\u0131n sunuculardan teslim ederek web sitesi performans\u0131n\u0131 art\u0131r\u0131r. Ancak CDN&#8217;ler sadece performans arac\u0131 de\u011fildir; ayn\u0131 zamanda DDoS korumas\u0131, Web Uygulama G\u00fcvenlik Duvar\u0131 (WAF) entegrasyonu ve URL tokenizasyonu gibi g\u00fcvenlik \u00f6zellikleri de sunabilirler. Do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f bir CDN, g\u00f6rsellerinizi siber sald\u0131r\u0131lara kar\u015f\u0131 ek bir kalkanla koruyabilir ve i\u00e7erik b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamaya yard\u0131mc\u0131 olabilir. Bu temel bilgilerin \u0131\u015f\u0131\u011f\u0131nda, pratik ad\u0131mlarla g\u00fcvenli\u011finizi nas\u0131l art\u0131rabilece\u011fimize odaklanal\u0131m.<\/p>\n<h2>Uygulamal\u0131 Yakla\u015f\u0131m: Resim G\u00fcvenli\u011fini Ad\u0131m Ad\u0131m Nas\u0131l Sa\u011flars\u0131n\u0131z?<\/h2>\n<p>Resim g\u00fcvenli\u011fini sa\u011flamak, teorik bilgiden ziyade pratik ad\u0131mlar gerektirir. Bu b\u00f6l\u00fcmde, g\u00f6rsellerinizi potansiyel tehditlerden korumak i\u00e7in uygulayabilece\u011finiz somut stratejileri ve kod \u00f6rneklerini inceleyece\u011fiz. Her ad\u0131m, g\u00fcvenlik duru\u015funuzu g\u00fc\u00e7lendirmek ve olas\u0131 zafiyetleri en aza indirmek i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<h3>Dosya Y\u00fckleme G\u00fcvenli\u011fi \u0130\u00e7in Neler Yapmal\u0131y\u0131z?<\/h3>\n<p>Kullan\u0131c\u0131lar\u0131n resim y\u00fcklemesine izin veren her platform, ciddi g\u00fcvenlik riskleriyle kar\u015f\u0131 kar\u015f\u0131yad\u0131r. Bu riskleri azaltmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 uygulamak zorunludur:<\/p>\n<ol>\n<li><strong>Tip ve Boyut Do\u011frulama:<\/strong> Y\u00fcklenen dosyan\u0131n ger\u00e7ekten bir resim dosyas\u0131 olup olmad\u0131\u011f\u0131n\u0131 ve belirlenen boyut limitleri i\u00e7inde kal\u0131p kalmad\u0131\u011f\u0131n\u0131 hem istemci hem de sunucu taraf\u0131nda kontrol edin. \u0130stemci taraf\u0131 kontroller (JavaScript ile) kullan\u0131c\u0131 deneyimini iyile\u015ftirse de, as\u0131l g\u00fcvenlik sunucu taraf\u0131nda yap\u0131lan do\u011frulama ile sa\u011flan\u0131r. Dosya uzant\u0131s\u0131 kontrol\u00fc yeterli de\u011fildir; dosyan\u0131n MIME tipini ve hatta i\u00e7eri\u011fini (magic bytes) kontrol etmek daha g\u00fcvenlidir.<\/li>\n<li><strong>Zararl\u0131 \u0130\u00e7erik Taramas\u0131:<\/strong> Y\u00fcklenen resimleri sunucunuza kaydetmeden \u00f6nce, ClamAV gibi bir antivir\u00fcs yaz\u0131l\u0131m\u0131 ile k\u00f6t\u00fc ama\u00e7l\u0131 yaz\u0131l\u0131m taramas\u0131ndan ge\u00e7irin. Bu, gizlenmi\u015f zararl\u0131 scriptlerin veya web shell&#8217;lerin sisteminize s\u0131zmas\u0131n\u0131 engelleyebilir.<\/li>\n<li><strong>Y\u00fcklenen Dosyalar\u0131n \u0130simlendirilmesi ve Depolanmas\u0131:<\/strong> Asla kullan\u0131c\u0131 taraf\u0131ndan belirlenen dosya adlar\u0131n\u0131 do\u011frudan kullanmay\u0131n. Bunun yerine, dosyalara benzersiz, rastgele adlar atay\u0131n (\u00f6rne\u011fin, UUID kullanarak). Ayr\u0131ca, y\u00fcklenen resimleri web sunucusunun k\u00f6k dizini d\u0131\u015f\u0131nda, do\u011frudan eri\u015filemeyen bir klas\u00f6rde saklay\u0131n. E\u011fer web \u00fczerinden eri\u015fim gerekiyorsa, ayr\u0131 bir statik i\u00e7erik sunucusu veya CDN kullan\u0131n ve do\u011fru izinleri ayarlay\u0131n.<\/li>\n<\/ol>\n<p>A\u015fa\u011f\u0131da, PHP kullanarak temel dosya y\u00fckleme g\u00fcvenli\u011fi ad\u0131mlar\u0131n\u0131 g\u00f6steren bir kod \u00f6rne\u011fi bulunmaktad\u0131r:<\/p>\n<pre><code class=\"language-php\">\n<?php\n$target_dir = \"uploads\/\"; \/\/ Y\u00fcklenen dosyalar\u0131n depolanaca\u011f\u0131 dizin\n\/\/ Dizinin sunucu k\u00f6k dizini d\u0131\u015f\u0131nda oldu\u011fundan emin olun!\n$target_file = $target_dir . basename($_FILES[\"fileToUpload\"][\"name\"]); \/\/ Orijinal dosya ad\u0131 (sadece bilgi ama\u00e7l\u0131)\n$uploadOk = 1;\n$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));\n\n\/\/ Y\u00fcklenecek dosyan\u0131n ger\u00e7ek bir resim olup olmad\u0131\u011f\u0131n\u0131 kontrol et\nif(isset($_POST[\"submit\"])) {\n    $check = getimagesize($_FILES[\"fileToUpload\"][\"tmp_name\"]);\n    if($check !== false) {\n        echo \"Dosya bir resim - \" . $check[\"mime\"] . \".\";\n        $uploadOk = 1;\n    } else {\n        echo \"Dosya bir resim de\u011fil.\";\n        $uploadOk = 0;\n    }\n}\n\n\/\/ Dosya boyutu kontrol\u00fc (\u00f6rne\u011fin, 500KB'den b\u00fcy\u00fck olamaz)\nif ($_FILES[\"fileToUpload\"][\"size\"] > 500000) { \n    echo \"\u00dczg\u00fcn\u00fcz, dosyan\u0131z \u00e7ok b\u00fcy\u00fck (maks. 500KB).\";\n    $uploadOk = 0;\n}\n\n\/\/ Belirli dosya formatlar\u0131na izin ver (beyaz liste yakla\u015f\u0131m\u0131)\nif($imageFileType != \"jpg\" && $imageFileType != \"png\" && $imageFileType != \"jpeg\"\n&& $imageFileType != \"gif\" ) {\n    echo \"\u00dczg\u00fcn\u00fcz, sadece JPG, JPEG, PNG & GIF dosyalar\u0131na izin verilir.\";\n    $uploadOk = 0;\n}\n\n\/\/ Y\u00fckleme kontrol\u00fc ve dosyan\u0131n sunucuya kaydedilmesi\nif ($uploadOk == 0) {\n    echo \"\u00dczg\u00fcn\u00fcz, dosyan\u0131z y\u00fcklenemedi.\";\n} else {\n    \/\/ G\u00fcvenli bir \u015fekilde rastgele bir dosya ad\u0131 olu\u015fturma\n    $newFileName = uniqid() . \".\" . $imageFileType;\n    if (move_uploaded_file($_FILES[\"fileToUpload\"][\"tmp_name\"], $target_dir . $newFileName)) {\n        echo \"Dosya \". htmlspecialchars( basename( $_FILES[\"fileToUpload\"][\"name\"])). \" ba\u015far\u0131yla y\u00fcklendi ve \" . $newFileName . \" olarak kaydedildi.\";\n    } else {\n        echo \"\u00dczg\u00fcn\u00fcz, dosyan\u0131z\u0131 y\u00fcklerken bir hata olu\u015ftu.\";\n    }\n}\n?>\n        <\/pre>\n<p><\/code><\/p>\n<div class=\"uzman-ipucu\">\n            Uzman \u0130pucu: Resimlerinizi i\u015flerken (yeniden boyutland\u0131rma, k\u0131rpma vb.) ImageMagick veya GD k\u00fct\u00fcphaneleri gibi g\u00fcvenilir ve g\u00fcncel ara\u00e7lar\u0131 kullan\u0131n. Kullan\u0131c\u0131dan gelen verileri bu ara\u00e7lara do\u011frudan parametre olarak ge\u00e7irmemeye \u00f6zen g\u00f6sterin, \u00e7\u00fcnk\u00fc bu da komut enjeksiyonu zafiyetlerine yol a\u00e7abilir. Her zaman sanitizasyon ve do\u011frulama yap\u0131n.\n        <\/div>\n<h3>Metadata (EXIF) Bilgilerini Nas\u0131l Y\u00f6netebiliriz?<\/h3>\n<p>Resimlerdeki EXIF verileri, \u00f6zellikle konum bilgileri gibi hassas verilerin s\u0131zmas\u0131na neden olabilir. Bu nedenle, web'e y\u00fcklenen her resimden EXIF verilerini temizlemek, gizlili\u011fi korumak i\u00e7in kritik bir ad\u0131md\u0131r.<\/p>\n<p>Python'daki Pillow (PIL Fork) k\u00fct\u00fcphanesi, EXIF verilerini programatik olarak kald\u0131rmak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r:<\/p>\n<pre><code class=\"language-python\">\nfrom PIL import Image\nimport os\n\ndef remove_exif_data(image_path):\n    \"\"\"\n    Bir resim dosyas\u0131ndaki EXIF verilerini kald\u0131r\u0131r ve yeni bir dosya olarak kaydeder.\n    \"\"\"\n    try:\n        img = Image.open(image_path)\n        # EXIF verilerini kald\u0131rmak i\u00e7in, g\u00f6rselin piksel verilerini al\u0131p yeni bir Image nesnesi olu\u015ftururuz.\n        # Bu i\u015flem EXIF verilerini atar.\n        data = list(img.getdata())\n        image_without_exif = Image.new(img.mode, img.size)\n        image_without_exif.putdata(data)\n        \n        # Yeni bir dosya olarak kaydet veya \u00fczerine yaz.\n        # Burada \"_noexif\" ile yeni bir dosya ad\u0131 olu\u015fturulmu\u015ftur.\n        base_name, ext = os.path.splitext(image_path)\n        new_path = f\"{base_name}_noexif{ext}\" \n        \n        image_without_exif.save(new_path)\n        print(f\"EXIF verileri temizlendi ve yeni dosya: {new_path} olarak kaydedildi.\")\n        return new_path\n    except Exception as e:\n        print(f\"EXIF temizleme hatas\u0131: {e}\")\n        return None\n\n# Kullan\u0131m \u00f6rne\u011fi\n# remove_exif_data(\"ornek_resim.jpg\") # Bu sat\u0131r\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in 'ornek_resim.jpg' adl\u0131 bir dosyan\u0131n olmas\u0131 gerekir.\n        <\/pre>\n<p><\/code><\/p>\n<p>Bu kod blo\u011fu, bir resmin piksellerini kopyalayarak EXIF verilerini i\u00e7ermeyen yeni bir resim olu\u015fturur. Bu i\u015flem, hassas bilgilerin web'e s\u0131zmas\u0131n\u0131 engellemenin etkili bir yoludur. Bu temel g\u00fcvenlik uygulamalar\u0131yla g\u00fc\u00e7l\u00fc bir temel olu\u015fturabiliriz. Ancak siber tehditler s\u00fcrekli geli\u015fti\u011fi i\u00e7in, daha geli\u015fmi\u015f stratejilere de ihtiyac\u0131m\u0131z var.<\/p>\n<h2>Geli\u015fmi\u015f Stratejiler: Resim G\u00fcvenli\u011finde \u0130leri Seviye Taktikler Nelerdir?<\/h2>\n<p>Temel g\u00fcvenlik \u00f6nlemleri, bir\u00e7ok yayg\u0131n tehdide kar\u015f\u0131 koruma sa\u011flarken, daha sofistike sald\u0131r\u0131lara kar\u015f\u0131 koymak i\u00e7in ileri d\u00fczey stratejilere ihtiya\u00e7 duyar\u0131z. Bu b\u00f6l\u00fcm, web'deki resim g\u00fcvenli\u011fini daha da g\u00fc\u00e7lendirecek geli\u015fmi\u015f teknikleri ve ara\u00e7lar\u0131 ele alacakt\u0131r.<\/p>\n<h3>\u0130\u00e7erik G\u00fcvenli\u011fi Politikas\u0131 (CSP) ile XSS Sald\u0131r\u0131lar\u0131n\u0131 Nas\u0131l \u00d6nleriz?<\/h3>\n<p>\u0130\u00e7erik G\u00fcvenli\u011fi Politikas\u0131 (CSP), bir web sayfas\u0131n\u0131n hangi kaynaklardan (scriptler, stiller, g\u00f6rseller vb.) i\u00e7erik y\u00fckleyebilece\u011fini tan\u0131mlayan bir g\u00fcvenlik katman\u0131d\u0131r. Do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f bir CSP, \u00f6zellikle XSS (Cross-Site Scripting) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 g\u00fc\u00e7l\u00fc bir savunma sa\u011flar. Resim g\u00fcvenli\u011fi ba\u011flam\u0131nda, CSP'nin <code>img-src<\/code> y\u00f6nergesi, g\u00f6rsellerin yaln\u0131zca g\u00fcvenilir kaynaklardan y\u00fcklenmesini sa\u011flayarak, k\u00f6t\u00fc ama\u00e7l\u0131 sitelerden resim y\u00fcklenmesi veya enjekte edilmi\u015f HTML\/JS kodlar\u0131 arac\u0131l\u0131\u011f\u0131yla resim sald\u0131r\u0131lar\u0131n\u0131n \u00f6n\u00fcne ge\u00e7ebilir.<\/p>\n<pre><code class=\"language-html\">\n<!-- Sunucu taraf\u0131nda HTTP ba\u015fl\u0131\u011f\u0131 olarak g\u00f6nderilir -->\nContent-Security-Policy: default-src 'self'; img-src 'self' https:\/\/cdn.example.com data:; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';\n        <\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki CSP ba\u015fl\u0131\u011f\u0131 \u00f6rne\u011finde:<\/p>\n<ul>\n<li><code>default-src 'self'<\/code>: T\u00fcm i\u00e7eri\u011fin (varsay\u0131lan olarak) yaln\u0131zca ayn\u0131 kaynaktan y\u00fcklenmesine izin verir.<\/li>\n<li><code>img-src 'self' https:\/\/cdn.example.com data:<\/code>: G\u00f6rsel kaynaklar\u0131n\u0131n yaln\u0131zca kendi sunucunuzdan (<code>'self'<\/code>), belirtilen CDN'den (<code>https:\/\/cdn.example.com<\/code>) ve veri URI'lar\u0131ndan (<code>data:<\/code> - k\u00fc\u00e7\u00fck resimler veya ikonlar i\u00e7in faydal\u0131 olabilir) gelmesine izin verir. Bu, harici ve g\u00fcvenilmeyen kaynaklardan g\u00f6rsel y\u00fcklenmesini engeller.<\/li>\n<li><code>script-src 'self' 'unsafe-inline'<\/code> ve <code>style-src 'self' 'unsafe-inline'<\/code>: Bu y\u00f6nergeler, betiklerin ve stilin kendi sunucunuzdan y\u00fcklenmesine izin verirken, sat\u0131r i\u00e7i betiklere ve stillere de ge\u00e7ici olarak izin verir. G\u00fcvenlik seviyesini art\u0131rmak i\u00e7in <code>'unsafe-inline'<\/code> yerine karma de\u011ferler (hash) veya nonce'lar kullan\u0131lmas\u0131 \u00f6nerilir.<\/li>\n<\/ul>\n<p>CSP uygulamas\u0131, sitenizin g\u00fcvenlik profilini \u00f6nemli \u00f6l\u00e7\u00fcde g\u00fc\u00e7lendirir ve XSS sald\u0131r\u0131lar\u0131yla ili\u015fkili resim tabanl\u0131 tehditleri azalt\u0131r.<\/p>\n<h3>CDN ve G\u00fcvenlik Duvarlar\u0131 (WAF) Nas\u0131l Kullan\u0131l\u0131r?<\/h3>\n<p>Modern web uygulamalar\u0131 i\u00e7in performans ve g\u00fcvenlik el ele gider. \u0130\u00e7erik Teslim A\u011flar\u0131 (CDN'ler) ve Web Uygulama G\u00fcvenlik Duvarlar\u0131 (WAF'lar) bu iki ihtiyac\u0131 kar\u015f\u0131lamada kilit rol oynar.<\/p>\n<ul>\n<li><strong>CDN Kullan\u0131m\u0131:<\/strong> Cloudflare, Akamai, Amazon CloudFront gibi CDN'ler, g\u00f6rsellerinizi co\u011frafi olarak da\u011f\u0131t\u0131lm\u0131\u015f sunucularda \u00f6nbelle\u011fe alarak hem y\u00fckleme s\u00fcrelerini azalt\u0131r hem de bir dizi g\u00fcvenlik \u00f6zelli\u011fi sunar. Bu \u00f6zellikler aras\u0131nda DDoS korumas\u0131, bot y\u00f6netimi ve \u00f6nbelle\u011fe al\u0131nm\u0131\u015f i\u00e7erik i\u00e7in SSL\/TLS \u015fifrelemesi bulunur. \u00d6zellikle, g\u00f6rsellerin k\u00f6t\u00fc niyetli botlar taraf\u0131ndan taranmas\u0131n\u0131 veya a\u015f\u0131r\u0131 y\u00fcklenmesini engelleyerek bant geni\u015fli\u011fi israf\u0131n\u0131 \u00f6nlerler.<\/li>\n<li><strong>WAF Entegrasyonu:<\/strong> Bir WAF, web sunucunuz ile internet trafi\u011fi aras\u0131na yerle\u015fen bir g\u00fcvenlik duvar\u0131d\u0131r. SQL enjeksiyonu, XSS ve dosya y\u00fckleme zafiyetleri gibi bilinen web tabanl\u0131 sald\u0131r\u0131lar\u0131 tespit edip engelleyebilir. G\u00f6rsel y\u00fckleme formlar\u0131 arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirilen web shell sald\u0131r\u0131lar\u0131na kar\u015f\u0131 WAF'lar, zararl\u0131 y\u00fckleri alg\u0131layabilir ve sunucunuza ula\u015fmalar\u0131n\u0131 engelleyebilir. WAF'lar ayr\u0131ca, URL yeniden yazma ve istek do\u011frulama kurallar\u0131 ile g\u00f6rsellere yetkisiz eri\u015fimi de k\u0131s\u0131tlayabilir.<\/li>\n<li><strong>URL Tokenizasyonu\/\u0130mzal\u0131 URL'ler:<\/strong> \u00d6zellikle \u00f6zel veya \u00fccretli i\u00e7eri\u011fe sahip g\u00f6rseller i\u00e7in imzal\u0131 URL'ler kullanmak, belirli bir s\u00fcre boyunca veya belirli bir IP adresinden eri\u015filebilir ge\u00e7ici URL'ler olu\u015fturman\u0131za olanak tan\u0131r. Bu, g\u00f6rsellerin yetkisiz indirilmesini veya payla\u015f\u0131lmas\u0131n\u0131 engelleyerek, i\u00e7eri\u011finizin kontrol\u00fcn\u00fc art\u0131r\u0131r.<\/li>\n<\/ul>\n<h3>Dijital Filigranlama ve Steganografi Teknikleri Nelerdir?<\/h3>\n<p>Resimlerin telif haklar\u0131n\u0131 korumak ve orijinalli\u011fini do\u011frulamak i\u00e7in dijital filigranlama ve steganografi teknikleri kullan\u0131labilir.<\/p>\n<ul>\n<li><strong>Dijital Filigranlama:<\/strong> Bu teknik, bir g\u00f6rsele genellikle g\u00f6r\u00fcnmez veya yar\u0131 saydam bir marka, logo veya metin yerle\u015ftirmeyi i\u00e7erir. G\u00f6r\u00fcn\u00fcr filigranlar, g\u00f6rsellerin yetkisiz kullan\u0131m\u0131n\u0131 cayd\u0131rmak i\u00e7in yayg\u0131n olarak kullan\u0131l\u0131rken, g\u00f6r\u00fcnmez filigranlar, g\u00f6rsellerin dijital izini s\u00fcrmek ve telif hakk\u0131 ihlallerini tespit etmek i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, bir haber ajans\u0131, yay\u0131mlad\u0131\u011f\u0131 t\u00fcm foto\u011fraflara g\u00f6r\u00fcnmez bir filigran ekleyerek, foto\u011fraflar\u0131n\u0131n ba\u015fka platformlarda izinsiz kullan\u0131l\u0131p kullan\u0131lmad\u0131\u011f\u0131n\u0131 takip edebilir. Filigran ekleme i\u015flemi, g\u00f6rsel i\u015fleme k\u00fct\u00fcphaneleri (\u00f6rne\u011fin Python'da Pillow) kullan\u0131larak otomatikle\u015ftirilebilir.<\/li>\n<li><strong>Steganografi:<\/strong> Steganografi, bir mesaj\u0131 (veri veya bilgi) ba\u015fka bir mesaj veya g\u00f6rsel i\u00e7inde gizleme sanat\u0131d\u0131r. Resim g\u00fcvenli\u011fi ba\u011flam\u0131nda, bu, g\u00f6r\u00fcn\u00fc\u015fte masum bir resim dosyas\u0131n\u0131n i\u00e7ine gizli bir mesaj veya hatta zararl\u0131 bir y\u00fck yerle\u015ftirmek anlam\u0131na gelebilir. K\u00f6t\u00fcye kullan\u0131m riski y\u00fcksek olsa da, yasal ama\u00e7lar i\u00e7in (\u00f6rne\u011fin, dijital sertifikalar\u0131 veya lisans bilgilerini gizlice g\u00f6rsellere yerle\u015ftirmek) de kullan\u0131labilir. Ancak, web uygulamalar\u0131nda kullan\u0131c\u0131lar\u0131n steganografik i\u00e7erik y\u00fcklemesini engellemek i\u00e7in s\u0131k\u0131 dosya taramalar\u0131 ve do\u011frulama mekanizmalar\u0131 uygulamak kritik \u00f6neme sahiptir. Aksi takdirde, sald\u0131rganlar zararl\u0131 kodlar\u0131 bu yolla gizleyerek sisteminize s\u0131zabilirler.<\/li>\n<\/ul>\n<p>T\u00fcm bu teknikler g\u00fcvenlik duru\u015fumuzu g\u00fc\u00e7lendirirken, ge\u00e7mi\u015fte yap\u0131lan hatalardan ders \u00e7\u0131karmak da bir o kadar \u00f6nemli.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131 ve Vaka Analizleri: Hatalardan Nas\u0131l Ders \u00c7\u0131kar\u0131r\u0131z?<\/h2>\n<p>Teorik bilgileri ve uygulama ad\u0131mlar\u0131n\u0131 \u00f6\u011frendik, ancak ger\u00e7ek d\u00fcnyadaki g\u00fcvenlik olaylar\u0131, ders \u00e7\u0131karman\u0131n en etkili yollar\u0131ndan biridir. Bu b\u00f6l\u00fcmde, resim g\u00fcvenli\u011fi zafiyetlerinin yol a\u00e7t\u0131\u011f\u0131 baz\u0131 vaka analizlerini inceleyece\u011fiz ve bu hatalardan nas\u0131l dersler \u00e7\u0131karabilece\u011fimizi de\u011ferlendirece\u011fiz.<\/p>\n<h3>Vaka Analizi 1: G\u00fcvenliksiz Dosya Y\u00fckleme Paneli ve Web Shell Sald\u0131r\u0131s\u0131<\/h3>\n<p><strong>Senaryo:<\/strong> Orta \u00f6l\u00e7ekli bir e-ticaret sitesi, sat\u0131c\u0131lar\u0131n \u00fcr\u00fcn resimlerini platforma y\u00fcklemesine olanak tan\u0131yan bir y\u00f6netim paneli sunuyordu. Ancak, bu paneldeki dosya y\u00fckleme mekanizmas\u0131 yaln\u0131zca dosya uzant\u0131s\u0131n\u0131 kontrol ediyordu (\u00f6rn. <code>.jpg<\/code>, <code>.png<\/code>). MIME tipi kontrol\u00fc veya dosya i\u00e7eri\u011fi do\u011frulamas\u0131 yap\u0131lm\u0131yordu. Bir sald\u0131rgan, asl\u0131nda PHP kodu i\u00e7eren ancak <code>.jpg<\/code> uzant\u0131s\u0131 verilmi\u015f bir dosyay\u0131 (web shell) y\u00fcklemeyi ba\u015fard\u0131. Sunucu, uzant\u0131ya aldanarak dosyay\u0131 bir resim dosyas\u0131 olarak kabul etti.<\/p>\n<p><strong>Sonu\u00e7:<\/strong> Y\u00fcklenen web shell, sunucu \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131labilir bir betik olarak alg\u0131land\u0131. Sald\u0131rgan, bu web shell arac\u0131l\u0131\u011f\u0131yla sunucuya uzaktan eri\u015fim sa\u011flad\u0131, veritaban\u0131na s\u0131zd\u0131 ve m\u00fc\u015fteri bilgilerini \u00e7ald\u0131. Ayr\u0131ca, sitenin ana sayfas\u0131n\u0131 tahrif ederek hizmeti kesintiye u\u011fratt\u0131.<\/p>\n<p><strong>Ders:<\/strong> Dosya y\u00fckleme g\u00fcvenli\u011fi, yaln\u0131zca dosya uzant\u0131s\u0131 kontrol\u00fcyle s\u0131n\u0131rl\u0131 kalmamal\u0131d\u0131r. Mutlaka sunucu taraf\u0131nda dosyan\u0131n ger\u00e7ek MIME tipi (<code>getimagesize()<\/code> veya benzeri fonksiyonlarla) ve i\u00e7eri\u011fi do\u011frulanmal\u0131d\u0131r. Y\u00fcklenen dosyalar asla web sunucusunun \u00e7al\u0131\u015ft\u0131r\u0131labilir dizinlerine yerle\u015ftirilmemeli, bunun yerine eri\u015fimi k\u0131s\u0131tl\u0131 statik bir depolama alan\u0131na kaydedilmelidir. Dosyalara rastgele isimler atanmal\u0131 ve asla kullan\u0131c\u0131 taraf\u0131ndan verilen isimler kullan\u0131lmamal\u0131d\u0131r.<\/p>\n<h3>Vaka Analizi 2: EXIF Verileriyle Hassas Konum Bilgisi S\u0131z\u0131nt\u0131s\u0131<\/h3>\n<p><strong>Senaryo:<\/strong> Bir emlak acentesi, portf\u00f6y\u00fcndeki evlerin foto\u011fraflar\u0131n\u0131 web sitesinde ve mobil uygulamas\u0131nda payla\u015f\u0131yordu. Foto\u011fraflar, acente \u00e7al\u0131\u015fanlar\u0131n\u0131n ak\u0131ll\u0131 telefonlar\u0131yla \u00e7ekilmi\u015f ve do\u011frudan sisteme y\u00fcklenmi\u015fti. Ancak, \u00e7al\u0131\u015fanlar\u0131n telefonlar\u0131n\u0131n konum servisleri a\u00e7\u0131k oldu\u011fu i\u00e7in, \u00e7ekilen her foto\u011frafa GPS koordinatlar\u0131 i\u00e7eren EXIF verileri de otomatik olarak ekleniyordu. Bu g\u00f6rseller, herhangi bir EXIF temizleme i\u015flemi yap\u0131lmadan web'de yay\u0131nland\u0131.<\/p>\n<p><strong>Sonu\u00e7:<\/strong> Web'deki herhangi bir kullan\u0131c\u0131, acentenin ilanlar\u0131n\u0131 inceleyerek, resimlerin EXIF verilerinden gayrimenkullerin tam GPS koordinatlar\u0131na ula\u015fabildi. Bu durum, potansiyel al\u0131c\u0131lar veya k\u00f6t\u00fc niyetli ki\u015filer i\u00e7in evlerin tam adreslerini kolayca bulma imkan\u0131 sa\u011flad\u0131. M\u00fc\u015fterilerin gizlili\u011fi ihlal edildi ve acentenin itibar\u0131 zarar g\u00f6rd\u00fc.<\/p>\n<p><strong>Ders:<\/strong> Web'e y\u00fcklenen t\u00fcm g\u00f6rsellerden EXIF verilerinin otomatik olarak temizlenmesi zorunludur. \u00d6zellikle konum bilgisi, ki\u015fisel tan\u0131mlay\u0131c\u0131lar veya cihaz bilgileri gibi hassas veriler i\u00e7eren g\u00f6rseller i\u00e7in bu ad\u0131m kritik \u00f6neme sahiptir. Bir g\u00f6rsel i\u015fleme hatt\u0131 (pipeline) kurarak, her g\u00f6rsel y\u00fcklemesinde bu temizleme i\u015flemini standart hale getirin.<\/p>\n<h3>Vaka Analizi 3: XSS Sald\u0131r\u0131lar\u0131 ile Resim Enjeksiyonu<\/h3>\n<p><strong>Senaryo:<\/strong> Pop\u00fcler bir online forum, kullan\u0131c\u0131lar\u0131n profil resimlerini y\u00fcklemesine ve mesajlar\u0131na resim eklemesine izin veriyordu. Forumun i\u00e7erik filtreleme mekanizmalar\u0131, HTML etiketlerinin bir\u00e7o\u011funu engellerken, <code><img><\/code> etiketinin <code>onerror<\/code> gibi baz\u0131 niteliklerini g\u00f6zden ka\u00e7\u0131r\u0131yordu. Bir sald\u0131rgan, profil resmi olarak veya mesaj\u0131na ekledi\u011fi bir resimde, <code><img decoding=\"async\" src=\"gecersiz.jpg\" onerror=\"alert(&#039;XSS Sald\u0131r\u0131s\u0131!&#039;);\"><\/code> gibi bir yap\u0131 kulland\u0131.<\/p>\n<p><strong>Sonu\u00e7:<\/strong> Sald\u0131rgan\u0131n profilini veya mesaj\u0131n\u0131 g\u00f6r\u00fcnt\u00fcleyen di\u011fer kullan\u0131c\u0131lar\u0131n taray\u0131c\u0131lar\u0131nda, resmin y\u00fcklenememesi durumunda <code>onerror<\/code> olay\u0131 tetiklenerek zararl\u0131 JavaScript kodu \u00e7al\u0131\u015ft\u0131. Bu, kullan\u0131c\u0131lar\u0131n oturum \u00e7erezlerinin \u00e7al\u0131nmas\u0131na, kimlik av\u0131 sald\u0131r\u0131lar\u0131na veya istenmeyen i\u00e7eriklerin g\u00f6r\u00fcnt\u00fclenmesine yol a\u00e7t\u0131. Forumun kullan\u0131c\u0131 taban\u0131 b\u00fcy\u00fck bir g\u00fcvenlik zafiyetiyle kar\u015f\u0131 kar\u015f\u0131ya kald\u0131.<\/p>\n<p><strong>Ders:<\/strong> \u0130\u00e7erik G\u00fcvenli\u011fi Politikas\u0131 (CSP) uygulamak, \u00f6zellikle <code>img-src<\/code> y\u00f6nergeleriyle resim kaynaklar\u0131n\u0131 k\u0131s\u0131tlayarak bu t\u00fcr XSS sald\u0131r\u0131lar\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde \u00f6nler. Kullan\u0131c\u0131 taraf\u0131ndan \u00fcretilen i\u00e7eri\u011fi (UGC) i\u015flerken, HTML etiketlerini ve niteliklerini \u00e7ok s\u0131k\u0131 bir \u015fekilde sterilize edin ve yaln\u0131zca beyaz listeye al\u0131nm\u0131\u015f, g\u00fcvenli etiket ve niteliklere izin verin. Gerekirse, resimleri bir HTML ayr\u0131\u015ft\u0131rma arac\u0131 kullanarak yeniden olu\u015fturun ve olas\u0131 zararl\u0131 nitelikleri tamamen kald\u0131r\u0131n. Bu \u00f6rnekler, resim g\u00fcvenli\u011finin yaln\u0131zca teknik bir konu olmad\u0131\u011f\u0131n\u0131, ayn\u0131 zamanda i\u015f s\u00fcre\u00e7lerinin ve kullan\u0131c\u0131 e\u011fitiminin de \u00f6nemli bir par\u00e7as\u0131 oldu\u011funu g\u00f6steriyor. \u015eimdi, \u00f6\u011frendiklerimizi toparlayal\u0131m...<\/p>\n<h2>Sonu\u00e7: Resim G\u00fcvenli\u011fi Yolculu\u011funuzda Neredesiniz?<\/h2>\n<p>G\u00f6rsel i\u00e7eriklerin web \u00fczerindeki \u00f6nemi tart\u0131\u015f\u0131lmaz olsa da, beraberinde getirdi\u011fi g\u00fcvenlik riskleri de bir o kadar b\u00fcy\u00fckt\u00fcr. Bu makalede, CKS Notlar\u0131 \u00e7er\u00e7evesinde resim g\u00fcvenli\u011finin neden kritik oldu\u011funu, temel kavramlar\u0131n\u0131 ve pratik uygulamalar\u0131n\u0131 derinlemesine inceledik. Dosya y\u00fckleme zafiyetlerinden EXIF veri s\u0131z\u0131nt\u0131lar\u0131na, XSS sald\u0131r\u0131lar\u0131ndan telif hakk\u0131 ihlallerine kadar geni\u015f bir yelpazede tehditlerle kar\u015f\u0131 kar\u015f\u0131yay\u0131z.<\/p>\n<p>Ancak, bu tehditlere kar\u015f\u0131 g\u00fc\u00e7l\u00fc bir savunma hatt\u0131 olu\u015fturmak m\u00fcmk\u00fcnd\u00fcr. G\u00f6rsellerinizi korumak, sunucu taraf\u0131nda s\u0131k\u0131 do\u011frulama (MIME tipi, boyut, i\u00e7erik) yapmaktan, EXIF verilerini temizlemeye, \u0130\u00e7erik G\u00fcvenli\u011fi Politikalar\u0131 (CSP) uygulamaktan ve CDN\/WAF gibi geli\u015fmi\u015f g\u00fcvenlik ara\u00e7lar\u0131n\u0131 kullanmaya kadar \u00e7ok katmanl\u0131 bir yakla\u015f\u0131m gerektirir. Ger\u00e7ek d\u00fcnya senaryolar\u0131, bu \u00f6nlemlerin eksikli\u011finin ne kadar ciddi sonu\u00e7lar do\u011furabilece\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Siber g\u00fcvenlik, asla bitmeyen bir yolculuktur. Tehdit manzaras\u0131 s\u00fcrekli de\u011fi\u015fti\u011fi i\u00e7in, g\u00fcvenlik stratejilerinizi ve uygulamalar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmeniz, g\u00fcncellemeniz ve iyile\u015ftirmeniz gerekmektedir. Unutmay\u0131n, g\u00fcvende olmak bir var\u0131\u015f noktas\u0131 de\u011fil, s\u00fcrekli bir s\u00fcre\u00e7tir. Web varl\u0131klar\u0131n\u0131zdaki resim g\u00fcvenli\u011fini en \u00fcst d\u00fczeye \u00e7\u0131karmak i\u00e7in bug\u00fcn harekete ge\u00e7in ve bu rehberdeki ad\u0131mlar\u0131 sisteminize entegre edin.<\/p>\n<h2 class=\"s\u0131kca-sorulan-sorular-ba\u015fl\u0131k\">S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<div class=\"s\u0131kca-sorulan-sorular\">\n<ul>\n<li>\n                    <strong>Soru 1: Resim g\u00fcvenli\u011fi sadece sunucu taraf\u0131nda m\u0131 yap\u0131lmal\u0131?<\/strong><\/p>\n<p>Cevap: Hay\u0131r, hem istemci hem de sunucu taraf\u0131nda do\u011frulamalar yap\u0131lmal\u0131d\u0131r. Ancak istemci taraf\u0131ndaki (taray\u0131c\u0131 tabanl\u0131) kontroller kolayca atlat\u0131labilece\u011finden, as\u0131l ve kritik g\u00fcvenlik \u00f6nlemleri her zaman sunucu taraf\u0131nda uygulanmal\u0131d\u0131r. Taray\u0131c\u0131 kontrolleri sadece kullan\u0131c\u0131 deneyimini iyile\u015ftirmeye yarar.<\/p>\n<\/li>\n<li>\n                    <strong>Soru 2: CDN kullanmak resimlerimi otomatik olarak g\u00fcvende tutar m\u0131?<\/strong><\/p>\n<p>Cevap: CDN'ler (\u0130\u00e7erik Da\u011f\u0131t\u0131m A\u011flar\u0131) DDoS korumas\u0131, \u00f6nbelle\u011fe alma ve WAF entegrasyonu gibi ek g\u00fcvenlik katmanlar\u0131 sunarak resimlerinizin performans\u0131n\u0131 ve genel direncini art\u0131rabilir. Ancak, temel resim y\u00fckleme zafiyetlerini (\u00f6rne\u011fin zararl\u0131 i\u00e7erik enjeksiyonu) veya EXIF veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 kendili\u011finden \u00e7\u00f6zmezler. CDN'ler, kendi g\u00fcvenlik politikalar\u0131n\u0131z ve sunucu taraf\u0131 kontrollerinizle birlikte kullan\u0131ld\u0131\u011f\u0131nda en etkilidir.<\/p>\n<\/li>\n<li>\n                    <strong>Soru 3: EXIF verilerini temizlemek her zaman gerekli midir?<\/strong><\/p>\n<p>Cevap: E\u011fer resimlerinizde hassas konum bilgisi, ki\u015fisel veri (\u00f6rn. kamera seri numaras\u0131, \u00e7ekim tarihi, kullan\u0131lan yaz\u0131l\u0131m) veya cihaz bilgisi gibi kamuya a\u00e7\u0131k olmamas\u0131 gereken bilgiler varsa, evet, temizlemek genellikle en iyi uygulamad\u0131r. \u0130\u00e7erik t\u00fcr\u00fcne, kullan\u0131m amac\u0131na ve hedef kitlenize g\u00f6re bu gereklilik de\u011fi\u015febilir. Ticari veya ki\u015fisel gizlili\u011fi olan g\u00f6rsellerde temizleme \u015fartt\u0131r.<\/p>\n<\/li>\n<li>\n                    <strong>Soru 4: Steganografi iyi ama\u00e7lar i\u00e7in kullan\u0131labilir mi?<\/strong><\/p>\n<p>Cevap: Evet, steganografi dijital filigranlama (\u00f6rne\u011fin telif hakk\u0131 bilgilerini gizlemek) veya veri b\u00fct\u00fcnl\u00fc\u011f\u00fc do\u011frulama gibi yasal ve etik ama\u00e7lar i\u00e7in kullan\u0131labilir. Ancak, k\u00f6t\u00fc niyetli ki\u015filer taraf\u0131ndan zararl\u0131 yaz\u0131l\u0131m veya \u015fifreli ileti\u015fim gibi k\u00f6t\u00fcye kullan\u0131mlar i\u00e7in de tercih edilebilir. Bu nedenle, platformunuzda kullan\u0131c\u0131lar\u0131n steganografik i\u00e7erik bar\u0131nd\u0131rmas\u0131na izin vermeden \u00f6nce \u00e7ok s\u0131k\u0131 tarama ve analiz mekanizmalar\u0131 uygulamak esast\u0131r.<\/p>\n<\/li>\n<\/ul><\/div>\n<\/p><\/div>\n<style>\n        \/* Responsive image example *\/\n        img {\n            max-width: 100%;\n            height: auto;\n            display: block; \/* Remove extra space below images *\/\n        }<\/p>\n<p>        \/* Basic responsive layout for article sections *\/\n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            line-height: 1.7;\n            color: #333;\n            margin: 0;\n            padding: 20px;\n            background-color: #f8fafd;\n        }<\/p>\n<p>        .container {\n            max-width: 960px;\n            margin: auto;\n            background: #ffffff;\n            padding: 35px 40px;\n            border-radius: 10px;\n            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);\n        }<\/p>\n<p>        h2 {\n            color: #2c3e50;\n            margin-top: 35px;\n            margin-bottom: 20px;\n            font-size: 2.2em;\n            border-bottom: 2px solid #e0e0e0;\n            padding-bottom: 10px;\n        }<\/p>\n<p>        h3 {\n            color: #34495e;\n            margin-top: 25px;\n            margin-bottom: 15px;\n            font-size: 1.6em;\n        }<\/p>\n<p>        p {\n            margin-bottom: 18px;\n            text-align: justify;\n        }<\/p>\n<p>        ul, ol {\n            margin-bottom: 18px;\n            padding-left: 25px;\n        }<\/p>\n<p>        li {\n            margin-bottom: 8px;\n        }<\/p>\n<p>        pre {\n            background: #ecf0f1;\n            padding: 18px;\n            border-left: 5px solid #3498db;\n            overflow-x: auto;\n            border-radius: 8px;\n            margin-bottom: 25px;\n            font-family: 'Fira Code', 'Cascadia Code', 'Consolas', monospace;\n            font-size: 0.95em;\n            line-height: 1.5;\n            color: #34495e;\n        }<\/p>\n<p>        code {\n            font-family: 'Fira Code', 'Cascadia Code', 'Consolas', monospace;\n            background-color: #f0f3f6;\n            padding: 3px 6px;\n            border-radius: 4px;\n            color: #c0392b;\n            font-size: 0.9em;\n        }<\/p>\n<p>        pre code {\n            background-color: transparent;\n            padding: 0;\n            color: #34495e;\n        }<\/p>\n<p>        .uzman-ipucu {\n            background-color: #e8f8f7;\n            border-left: 5px solid #1abc9c;\n            padding: 20px;\n            margin: 30px 0;\n            border-radius: 8px;\n            font-style: italic;\n            color: #2c3e50;\n            box-shadow: 0 2px 8px rgba(26, 188, 156, 0.1);\n        }<\/p>\n<p>        .s\u0131kca-sorulan-sorular ul {\n            list-style-type: none;\n            padding: 0;\n        }<\/p>\n<p>        .s\u0131kca-sorulan-sorular li {\n            margin-bottom: 20px;\n            background-color: #fcfdfe;\n            padding: 18px 25px;\n            border-radius: 8px;\n            border: 1px solid #eef2f6;\n            box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05);\n        }<\/p>\n<p>        .s\u0131kca-sorulan-sorular li strong {\n            color: #2980b9;\n            display: block;\n            margin-bottom: 8px;\n            font-size: 1.1em;\n        }<\/p>\n<p>        .s\u0131kca-sorulan-sorular li p {\n            margin-bottom: 0;\n            text-align: left;\n        }<\/p>\n<p>        \/* Media Queries for responsiveness *\/\n        @media (max-width: 992px) {\n            .container {\n                padding: 30px;\n                margin: 15px;\n                max-width: calc(100% - 30px);\n            }\n        }<\/p>\n<p>        @media (max-width: 768px) {\n            body {\n                padding: 15px;\n            }\n            .container {\n                padding: 25px;\n                margin: 10px;\n                max-width: calc(100% - 20px);\n            }\n            h2 {\n                font-size: 1.9em;\n                margin-top: 30px;\n            }\n            h3 {\n                font-size: 1.4em;\n            }\n            pre {\n                font-size: 0.9em;\n                padding: 15px;\n            }\n            .uzman-ipucu {\n                padding: 15px;\n            }\n        }<\/p>\n<p>        @media (max-width: 480px) {\n            body {\n                padding: 10px;\n            }\n            .container {\n                padding: 20px;\n                margin: 5px;\n                max-width: calc(100% - 10px);\n                border-radius: 5px;\n                box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);\n            }\n            h2 {\n                font-size: 1.6em;\n                margin-top: 25px;\n                margin-bottom: 15px;\n                padding-bottom: 8px;\n            }\n            h3 {\n                font-size: 1.2em;\n                margin-top: 20px;\n                margin-bottom: 10px;\n            }\n            p, ul, ol, li {\n                font-size: 0.95em;\n                line-height: 1.6;\n            }\n            pre {\n                font-size: 0.85em;\n                padding: 10px;\n            }\n            code {\n                font-size: 0.8em;\n            }\n            .uzman-ipucu {\n                padding: 12px;\n                margin: 20px 0;\n            }\n            .s\u0131kca-sorulan-sorular li {\n                padding: 15px 20px;\n            }\n            .s\u0131kca-sorulan-sorular li strong {\n                font-size: 1em;\n            }\n        }\n    <\/style>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Web sitelerindeki resim g\u00fcvenli\u011fi, siber tehditlere kar\u015f\u0131 hayati bir savunma hatt\u0131d\u0131r. CKS Notlar\u0131 ile g\u00f6rsellerinizi koruman\u0131n yollar\u0131n\u0131, temel&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":[1],"tags":[],"class_list":{"0":"post-35256","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>CKS Notlar\u0131: Web&#039;de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?<\/title>\n<meta name=\"description\" content=\"Web sitelerindeki resim g\u00fcvenli\u011fi, siber tehditlere kar\u015f\u0131 hayati bir savunma hatt\u0131d\u0131r. CKS Notlar\u0131 ile g\u00f6rsellerinizi koruman\u0131n yollar\u0131n\u0131, temel riskleri ve pratik \u00e7\u00f6z\u00fcmleri ke\u015ffedin. Bu rehberle resim g\u00fcvenli\u011finizi g\u00fc\u00e7lendirin.\" \/>\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\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CKS Notlar\u0131: Web&#039;de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?\" \/>\n<meta property=\"og:description\" content=\"Web sitelerindeki resim g\u00fcvenli\u011fi, siber tehditlere kar\u015f\u0131 hayati bir savunma hatt\u0131d\u0131r. CKS Notlar\u0131 ile g\u00f6rsellerinizi koruman\u0131n yollar\u0131n\u0131, temel riskleri ve pratik \u00e7\u00f6z\u00fcmleri ke\u015ffedin. Bu rehberle resim g\u00fcvenli\u011finizi g\u00fc\u00e7lendirin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-27T10:31:19+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=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"CKS Notlar\u0131: Web&#8217;de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?\",\"datePublished\":\"2025-11-27T10:31:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/\"},\"wordCount\":3729,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/\",\"name\":\"CKS Notlar\u0131: Web'de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-27T10:31:19+00:00\",\"description\":\"Web sitelerindeki resim g\u00fcvenli\u011fi, siber tehditlere kar\u015f\u0131 hayati bir savunma hatt\u0131d\u0131r. CKS Notlar\u0131 ile g\u00f6rsellerinizi koruman\u0131n yollar\u0131n\u0131, temel riskleri ve pratik \u00e7\u00f6z\u00fcmleri ke\u015ffedin. Bu rehberle resim g\u00fcvenli\u011finizi g\u00fc\u00e7lendirin.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CKS Notlar\u0131: Web&#8217;de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?\"}]},{\"@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":"CKS Notlar\u0131: Web'de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?","description":"Web sitelerindeki resim g\u00fcvenli\u011fi, siber tehditlere kar\u015f\u0131 hayati bir savunma hatt\u0131d\u0131r. CKS Notlar\u0131 ile g\u00f6rsellerinizi koruman\u0131n yollar\u0131n\u0131, temel riskleri ve pratik \u00e7\u00f6z\u00fcmleri ke\u015ffedin. Bu rehberle resim g\u00fcvenli\u011finizi g\u00fc\u00e7lendirin.","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\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"CKS Notlar\u0131: Web'de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?","og_description":"Web sitelerindeki resim g\u00fcvenli\u011fi, siber tehditlere kar\u015f\u0131 hayati bir savunma hatt\u0131d\u0131r. CKS Notlar\u0131 ile g\u00f6rsellerinizi koruman\u0131n yollar\u0131n\u0131, temel riskleri ve pratik \u00e7\u00f6z\u00fcmleri ke\u015ffedin. Bu rehberle resim g\u00fcvenli\u011finizi g\u00fc\u00e7lendirin.","og_url":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-27T10:31:19+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"CKS Notlar\u0131: Web&#8217;de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?","datePublished":"2025-11-27T10:31:19+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/"},"wordCount":3729,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/","name":"CKS Notlar\u0131: Web'de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-27T10:31:19+00:00","description":"Web sitelerindeki resim g\u00fcvenli\u011fi, siber tehditlere kar\u015f\u0131 hayati bir savunma hatt\u0131d\u0131r. CKS Notlar\u0131 ile g\u00f6rsellerinizi koruman\u0131n yollar\u0131n\u0131, temel riskleri ve pratik \u00e7\u00f6z\u00fcmleri ke\u015ffedin. Bu rehberle resim g\u00fcvenli\u011finizi g\u00fc\u00e7lendirin.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/cks-notlari-webde-resim-guvenligini-nasil-saglarsiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"CKS Notlar\u0131: Web&#8217;de Resim G\u00fcvenli\u011fini Nas\u0131l Sa\u011flars\u0131n\u0131z?"}]},{"@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\/35256","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=35256"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35256\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}