{"id":33379,"date":"2025-11-02T06:01:54","date_gmt":"2025-11-02T03:01:54","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/"},"modified":"2025-11-02T06:01:54","modified_gmt":"2025-11-02T03:01:54","slug":"apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/","title":{"rendered":"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu"},"content":{"rendered":"<p><body><\/p>\n<p>Google Drive&#8217;da payla\u015f\u0131lan dosyalar\u0131n\u0131z\u0131n tam kontrol\u00fcn\u00fc ele almak, veri g\u00fcvenli\u011fi ve uyumluluk a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Bu teknik makalede, Google Apps Script&#8217;in g\u00fc\u00e7l\u00fc yeteneklerini kullanarak Drive&#8217;daki t\u00fcm payla\u015f\u0131lan dosyalar\u0131 nas\u0131l denetleyece\u011finizi, riskleri nas\u0131l belirleyece\u011finizi ve veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 nas\u0131l \u00f6nleyece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.<\/p>\n<h2>Google Drive Payla\u015f\u0131m Denetimi Neden Bu Kadar \u00d6nemli?<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, bulut tabanl\u0131 depolama \u00e7\u00f6z\u00fcmleri, dosya payla\u015f\u0131m\u0131 ve i\u015fbirli\u011fi i\u00e7in vazge\u00e7ilmez ara\u00e7lar haline gelmi\u015ftir. \u00d6zellikle Google Drive, esnekli\u011fi ve entegrasyon yetenekleri sayesinde milyonlarca kurulu\u015f taraf\u0131ndan aktif olarak kullan\u0131lmaktad\u0131r. Ancak bu kolayl\u0131k, do\u011fru denetim mekanizmalar\u0131 olmadan ciddi g\u00fcvenlik risklerini de beraberinde getirebilir. Bir kurulu\u015f i\u00e7inde payla\u015f\u0131lan dosyalar\u0131n kontrols\u00fcz bir \u015fekilde d\u0131\u015far\u0131ya s\u0131zmas\u0131, hassas veri ihlallerine, fikri m\u00fclkiyet h\u0131rs\u0131zl\u0131\u011f\u0131na ve yasal d\u00fczenlemelere (KVKK, GDPR gibi) uyumsuzluktan kaynaklanan a\u011f\u0131r cezalara yol a\u00e7abilir. Bu nedenle, Google Drive&#8217;daki t\u00fcm payla\u015f\u0131lan dosyalar\u0131 d\u00fczenli olarak denetlemek, kurulu\u015flar\u0131n veri g\u00fcvenli\u011fini sa\u011flamak ve uyumluluk y\u00fck\u00fcml\u00fcl\u00fcklerini yerine getirmek i\u00e7in hayati bir ad\u0131md\u0131r.<\/p>\n<p>Peki, bu riskler somut olarak ne anlama geliyor? Bir d\u00fc\u015f\u00fcn\u00fcn: Bir \u00e7al\u0131\u015fan, gizli bir projeyle ilgili dok\u00fcman\u0131 yanl\u0131\u015fl\u0131kla t\u00fcm \u015firket d\u0131\u015f\u0131na &#8220;Herkese a\u00e7\u0131k&#8221; olarak payla\u015ft\u0131. Veya eski bir \u00e7al\u0131\u015fan, i\u015ften ayr\u0131lmadan \u00f6nce eri\u015fimi olan kritik verileri kendi ki\u015fisel Drive hesab\u0131na kopyalad\u0131. Bu senaryolar, ne yaz\u0131k ki s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan durumlard\u0131r. Bu t\u00fcr olaylar, yaln\u0131zca \u015firketin itibar\u0131n\u0131 zedelemekle kalmaz, ayn\u0131 zamanda \u00f6nemli finansal kay\u0131plara ve yasal s\u00fcre\u00e7lere de neden olabilir. \u0130\u015fte bu noktada, Apps Script ile yapaca\u011f\u0131m\u0131z denetim devreye giriyor. Otomatik bir sistemle hangi dosyalar\u0131n kimlerle payla\u015f\u0131ld\u0131\u011f\u0131n\u0131 anl\u0131k olarak g\u00f6rmek, potansiyel riskleri proaktif bir \u015fekilde belirlemenize ve gerekli \u00f6nlemleri alman\u0131za olanak tan\u0131r. B\u00f6ylece, hem i\u00e7 denetim s\u00fcre\u00e7lerinizi g\u00fc\u00e7lendirmi\u015f hem de d\u0131\u015f tehditlere kar\u015f\u0131 daha diren\u00e7li bir yap\u0131 kurmu\u015f olursunuz. Unutulmamal\u0131d\u0131r ki, dijital varl\u0131klar\u0131n g\u00fcvenli\u011fi, sadece bir IT departman\u0131n\u0131n sorumlulu\u011fu de\u011fil, t\u00fcm organizasyonun k\u00fclt\u00fcr\u00fc ve \u00f6nceli\u011fi olmal\u0131d\u0131r.<\/p>\n<p>Bir vaka analizi olarak, uluslararas\u0131 bir finans \u015firketi olan &#8220;Global Finans A.\u015e.&#8221; \u00f6rne\u011fini ele alal\u0131m. \u015eirket, h\u0131zl\u0131 b\u00fcy\u00fcme ve uzaktan \u00e7al\u0131\u015fma modeline ge\u00e7i\u015fle birlikte Google Drive kullan\u0131m\u0131n\u0131 art\u0131rm\u0131\u015ft\u0131. Ancak bir i\u00e7 denetim s\u0131ras\u0131nda, kritik m\u00fc\u015fteri verilerini i\u00e7eren bir \u00e7al\u0131\u015fma dosyas\u0131n\u0131n yanl\u0131\u015fl\u0131kla &#8220;ba\u011flant\u0131ya sahip herkes g\u00f6r\u00fcnt\u00fcleyebilir&#8221; \u015feklinde ayarland\u0131\u011f\u0131 tespit edildi. Bu dosya, haftalarca bu \u015fekilde eri\u015filebilir kalm\u0131\u015ft\u0131. Neyse ki, potansiyel bir veri s\u0131z\u0131nt\u0131s\u0131 olmadan fark edildi. Bu olay \u00fczerine Global Finans A.\u015e., Apps Script tabanl\u0131 otomatik bir denetim sistemi kurmaya karar verdi. Bu sistem sayesinde, belirli hassasiyet seviyesine sahip dosyalar\u0131n d\u0131\u015far\u0131ya a\u00e7\u0131lmas\u0131 durumunda an\u0131nda uyar\u0131lar alabiliyor ve payla\u015f\u0131m izinlerini periyodik olarak kontrol edebiliyorlar. G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, proaktif denetim, sadece bir \u00f6nlem de\u011fil, ayn\u0131 zamanda i\u015f s\u00fcreklili\u011finin ve itibar\u0131n korunmas\u0131 i\u00e7in de olmazsa olmaz bir ad\u0131md\u0131r.<\/p>\n<h2>Apps Script Nedir ve Google Drive ile Nas\u0131l B\u00fct\u00fcnle\u015fir?<\/h2>\n<p>Google Apps Script, Google Workspace ekosistemini otomatikle\u015ftirmek, geni\u015fletmek ve entegre etmek i\u00e7in Google taraf\u0131ndan sunulan bulut tabanl\u0131 bir JavaScript platformudur. Temel olarak, Google Dok\u00fcmanlar, E-Tablolar, Drive, Gmail ve Takvim gibi Google \u00fcr\u00fcnleriyle etkile\u015fime giren \u00f6zel fonksiyonlar ve eklentiler olu\u015fturman\u0131za olanak tan\u0131r. JavaScript tabanl\u0131 olmas\u0131 sayesinde, web geli\u015ftirme deneyimi olanlar i\u00e7in \u00f6\u011frenmesi olduk\u00e7a kolayd\u0131r. Apps Script kodlar\u0131, Google&#8217;\u0131n sunucular\u0131nda \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in herhangi bir sunucu kurma veya bak\u0131m yapma ihtiyac\u0131n\u0131z olmaz. Bu da onu hem bireysel kullan\u0131c\u0131lar hem de b\u00fcy\u00fck kurulu\u015flar i\u00e7in eri\u015filebilir ve maliyet etkin bir \u00e7\u00f6z\u00fcm haline getirir.<\/p>\n<p>Apps Script&#8217;in Google Drive ile b\u00fct\u00fcnle\u015fmesi ise DriveApp servisi arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015fir. DriveApp, Google Drive&#8217;\u0131n\u0131zdaki dosyalara, klas\u00f6rlere, izinlere ve di\u011fer meta verilere programatik olarak eri\u015fmenizi ve bunlar\u0131 y\u00f6netmenizi sa\u011flar. Bu sayede, Drive&#8217;daki dosyalar\u0131 arayabilir, kopyalayabilir, ta\u015f\u0131yabilir, silebilir, izinlerini de\u011fi\u015ftirebilir ve en \u00f6nemlisi, bizim konumuz olan denetim i\u015flemlerini ger\u00e7ekle\u015ftirebilirsiniz. \u00d6rne\u011fin, Drive&#8217;daki t\u00fcm dosyalar\u0131 tarayarak hangilerinin kimlerle payla\u015f\u0131ld\u0131\u011f\u0131n\u0131 listeleyebilir, belirli kriterlere uyan dosyalar\u0131n payla\u015f\u0131m ayarlar\u0131n\u0131 otomatik olarak g\u00fcncelleyebilir veya bir rapor olu\u015fturup y\u00f6neticilere e-posta ile g\u00f6nderebilirsiniz. Bu, manuel olarak saatler s\u00fcrecek i\u015fleri saniyeler i\u00e7inde halletmenizi sa\u011flayan muazzam bir g\u00fc\u00e7t\u00fcr.<\/p>\n<p>Apps Script projesi olu\u015fturmak olduk\u00e7a basittir. drive.google.com adresine gidip sol panelden &#8220;Yeni&#8221; -> &#8220;Daha fazla&#8221; -> &#8220;Google Apps Script&#8221; yolunu izleyebilir veya do\u011frudan script.google.com adresine giderek yeni bir proje ba\u015flatabilirsiniz. Projenizi olu\u015fturduktan sonra, bir kod d\u00fczenleyiciyle kar\u015f\u0131la\u015f\u0131rs\u0131n\u0131z. Burada JavaScript kodunuzu yazarak Apps Script fonksiyonlar\u0131n\u0131z\u0131 geli\u015ftirebilirsiniz. Ancak unutulmamas\u0131 gereken \u00f6nemli bir nokta, kodunuzun Google Drive&#8217;\u0131n\u0131za veya di\u011fer Google hizmetlerine eri\u015febilmesi i\u00e7in gerekli izinleri (OAuth 2.0 kapsamlar\u0131) vermeniz gerekti\u011fidir. \u0130lk kez bir DriveApp fonksiyonu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Google sizden bu izinleri onaylaman\u0131z\u0131 isteyecektir. Bu izinler, kodunuzun hangi verilere eri\u015febilece\u011fini ve hangi i\u015flemleri yapabilece\u011fini belirler. G\u00fcvenlik a\u00e7\u0131s\u0131ndan, her zaman yaln\u0131zca ihtiyac\u0131n\u0131z olan minimum izinleri vermeye \u00f6zen g\u00f6stermelisiniz.<\/p>\n<p>Apps Script&#8217;in sundu\u011fu bu esneklik, Google Drive denetimini otomatize etme konusunda s\u0131n\u0131rs\u0131z imkanlar sunar. Tekrarlayan g\u00f6revleri ortadan kald\u0131r\u0131r, insan hatas\u0131 olas\u0131l\u0131\u011f\u0131n\u0131 azalt\u0131r ve en \u00f6nemlisi, veri g\u00fcvenli\u011fi stratejinizin \u00f6nemli bir par\u00e7as\u0131 haline gelir. Bu servis, sadece teknik bilgiye sahip ki\u015filer i\u00e7in de\u011fil, ayn\u0131 zamanda verilerini daha iyi y\u00f6netmek ve korumak isteyen herkes i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. \u015eimdi gelin, bu arac\u0131 nas\u0131l kullanaca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m inceleyelim.<\/p>\n<h2>Ad\u0131m Ad\u0131m Apps Script ile Payla\u015f\u0131lan Dosyalar\u0131 Listeleme: Temel Bir Yakla\u015f\u0131m<\/h2>\n<p>Google Drive&#8217;daki payla\u015f\u0131lan dosyalar\u0131 denetlemenin ilk ad\u0131m\u0131, hangi dosyalar\u0131n payla\u015f\u0131ld\u0131\u011f\u0131n\u0131 ve bu payla\u015f\u0131mlar\u0131n detaylar\u0131n\u0131 programatik olarak listelemektir. Apps Script&#8217;in DriveApp servisi, bu i\u015flemi ger\u00e7ekle\u015ftirmemizi sa\u011flayan anahtar ara\u00e7t\u0131r. Bu b\u00f6l\u00fcmde, t\u00fcm dosyalar\u0131n\u0131z\u0131 tarayarak payla\u015f\u0131lanlar\u0131 nas\u0131l belirleyece\u011finizi ve temel bilgilerini nas\u0131l alaca\u011f\u0131n\u0131z\u0131 g\u00f6sterece\u011fiz. Bu, Apps Script ile yapaca\u011f\u0131n\u0131z daha karma\u015f\u0131k denetim i\u015flemlerinin temelini olu\u015fturacakt\u0131r.<\/p>\n<p>\u00d6ncelikle, bir Apps Script projesi olu\u015fturman\u0131z gerekiyor. script.google.com adresine gidin ve yeni bir proje ba\u015flat\u0131n. Varsay\u0131lan olarak olu\u015fturulan <code>Code.gs<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n. \u0130\u015fte size, Drive&#8217;\u0131n\u0131zdaki t\u00fcm dosyalar\u0131 taray\u0131p, payla\u015f\u0131lanlar\u0131 filtreleyerek temel bilgilerini (ad\u0131, ID&#8217;si, URL&#8217;si, sahipleri ve payla\u015fanlar\u0131) listeleyen basit bir kod \u00f6rne\u011fi:<\/p>\n<pre><code>\n    function listSharedFilesBasic() {\n      \/\/ Bu fonksiyon, Google Drive'daki payla\u015f\u0131lan dosyalar\u0131n temel bilgilerini listeler.\n      const files = DriveApp.getFiles(); \/\/ Drive'daki t\u00fcm dosyalara eri\u015fim sa\u011flar\n      let sharedFileDetails = []; \/\/ Payla\u015f\u0131lan dosya bilgilerini depolamak i\u00e7in bo\u015f bir dizi\n    \n      Logger.log(\"Google Drive'daki payla\u015f\u0131lan dosyalar taran\u0131yor...\");\n    \n      while (files.hasNext()) { \/\/ T\u00fcm dosyalar \u00fczerinde d\u00f6ng\u00fc olu\u015ftur\n        const file = files.next(); \/\/ Bir sonraki dosyay\u0131 al\n        \n        \/\/ isShareableByEditors() metodunu kullanmak, dosyan\u0131n payla\u015f\u0131labilir olup olmad\u0131\u011f\u0131n\u0131 kontrol etmenin bir yoludur.\n        \/\/ Ancak daha detayl\u0131 payla\u015f\u0131m durumunu kontrol etmek i\u00e7in getSharingPermission() ve getAccess() metodlar\u0131 daha do\u011fru olabilir.\n        \/\/ Bu \u00f6rnekte, 'isShareableByEditors()' yerine, dosyan\u0131n a\u00e7\u0131k\u00e7a payla\u015f\u0131l\u0131p payla\u015f\u0131lmad\u0131\u011f\u0131n\u0131 kontrol edece\u011fiz.\n        \n        \/\/ Dosyan\u0131n payla\u015f\u0131m ayarlar\u0131n\u0131 kontrol et\n        const sharingPermission = file.getSharingPermission();\n        const access = file.getAccess();\n    \n        \/\/ Dosya \u00f6zel de\u011filse (yani bir \u015fekilde payla\u015f\u0131lm\u0131\u015fsa)\n        if (sharingPermission !== DriveApp.Permission.PRIVATE || access !== DriveApp.Access.PRIVATE) {\n          \n          const owners = file.getOwners().map(owner => owner.getEmail()).join(', '); \/\/ Dosyan\u0131n sahiplerini al\n          let sharers = [];\n          \n          \/\/ G\u00f6r\u00fcnt\u00fcleyenleri ve d\u00fczenleyenleri al\n          file.getViewers().forEach(viewer => sharers.push(viewer.getEmail()));\n          file.getEditors().forEach(editor => sharers.push(editor.getEmail()));\n          \n          \/\/ E\u011fer dosya herkese a\u00e7\u0131k veya alan ad\u0131na a\u00e7\u0131ksa, bu bilgiyi de ekleyelim.\n          if (sharingPermission === DriveApp.Permission.ANYONE_WITH_LINK || sharingPermission === DriveApp.Permission.ANYONE) {\n            sharers.push(\"Herkese A\u00e7\u0131k (Ba\u011flant\u0131 ile)\" + (access === DriveApp.Access.ANYONE ? \" - Genel Eri\u015fim\" : \"\"));\n          } else if (sharingPermission === DriveApp.Permission.DOMAIN || sharingPermission === DriveApp.Permission.DOMAIN_WITH_LINK) {\n            sharers.push(\"Alan Ad\u0131na A\u00e7\u0131k (Ba\u011flant\u0131 ile)\" + (access === DriveApp.Access.DOMAIN ? \" - Alan Ad\u0131 Eri\u015fimi\" : \"\"));\n          }\n          \n          \/\/ Tekrarlayan e-posta adreslerini kald\u0131rmak i\u00e7in Set kullan\n          const uniqueSharers = [...new Set(sharers)].join(', ');\n    \n          sharedFileDetails.push({\n            name: file.getName(),\n            id: file.getId(),\n            url: file.getUrl(),\n            owners: owners || \"Bilinmiyor\", \/\/ Sahibi yoksa \"Bilinmiyor\" olarak i\u015faretle\n            sharers: uniqueSharers || \"Sadece Sahipler\", \/\/ Payla\u015f\u0131m yoksa veya bulunamazsa\n            lastUpdated: file.getLastUpdated().toISOString(),\n            sharingPermission: sharingPermission.toString(),\n            access: access.toString()\n          });\n        }\n      }\n      \n      if (sharedFileDetails.length > 0) {\n        Logger.log(<code>Toplam ${sharedFileDetails.length} adet payla\u015f\u0131lan dosya bulundu.<\/code>);\n        sharedFileDetails.forEach(detail => Logger.log(JSON.stringify(detail)));\n      } else {\n        Logger.log(\"Hi\u00e7 payla\u015f\u0131lan dosya bulunamad\u0131.\");\n      }\n    }\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu kodu Apps Script d\u00fczenleyicisine yap\u0131\u015ft\u0131rd\u0131ktan sonra, \u00fcst men\u00fcden fonksiyon a\u00e7\u0131l\u0131r listesinden <code>listSharedFilesBasic<\/code>'i se\u00e7ip \"\u00c7al\u0131\u015ft\u0131r\" d\u00fc\u011fmesine t\u0131klay\u0131n. \u0130lk \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Google sizden bu beti\u011fin Drive'\u0131n\u0131za eri\u015fim izni isteyecektir. Bu izinleri onaylad\u0131ktan sonra, betik \u00e7al\u0131\u015facak ve sonu\u00e7lar\u0131 \"Y\u00fcr\u00fctme g\u00fcnl\u00fc\u011f\u00fc\" (Execution log) penceresinde g\u00f6receksiniz. Her bir payla\u015f\u0131lan dosyan\u0131n ad\u0131, ID'si, URL'si, sahipleri ve kimlerle payla\u015f\u0131ld\u0131\u011f\u0131 burada listelenecektir.<\/p>\n<p>Bu temel listeleyici, ba\u015flang\u0131\u00e7 i\u00e7in harika bir ad\u0131md\u0131r. Ancak, bu \u00e7\u0131kt\u0131y\u0131 bir Google E-Tablosuna aktarmak, verileri daha kolay analiz etmenizi, filtrelemenizi ve g\u00f6rselle\u015ftirmenizi sa\u011flayacakt\u0131r. Ayr\u0131ca, <code>DriveApp.getFiles()<\/code> metodu sadece sizin sahip oldu\u011funuz veya sizinle payla\u015f\u0131lan dosyalara eri\u015febilir. Kurulu\u015funuzun t\u00fcm Drive dosyalar\u0131n\u0131 denetlemek i\u00e7in, genellikle bir Workspace y\u00f6neticisi hesab\u0131ndan veya uygun yetkilendirmelerle alan ad\u0131 genelinde yetkilendirilmi\u015f bir hizmet hesab\u0131ndan (service account) \u00e7al\u0131\u015fman\u0131z gerekebilir. \u0130lerleyen b\u00f6l\u00fcmlerde, bu \u00e7\u0131kt\u0131lar\u0131 nas\u0131l daha anlaml\u0131 hale getirece\u011fimizi ve daha ileri denetim tekniklerini ele alaca\u011f\u0131z.<\/p>\n<h2>Payla\u015f\u0131m \u0130zinlerini Detayl\u0131ca Analiz Etme ve Raporlama: Google E-Tablolar\u0131na Aktar\u0131m<\/h2>\n<p>Bir \u00f6nceki b\u00f6l\u00fcmde, payla\u015f\u0131lan dosyalar\u0131n temel bilgilerini nas\u0131l listeleyece\u011fimizi \u00f6\u011frendik. Ancak sadece listelemek yeterli de\u011fildir; bu veriyi anlaml\u0131 bir \u015fekilde analiz edebilmek ve raporlayabilmek, ger\u00e7ek denetim de\u011ferini sa\u011flar. Google E-Tablolar\u0131, Apps Script ile sorunsuz bir \u015fekilde entegre olabilir ve toplanan verileri d\u00fczenlemek, filtrelemek, s\u0131ralamak ve g\u00f6rselle\u015ftirmek i\u00e7in m\u00fckemmel bir platform sunar. Bu b\u00f6l\u00fcmde, payla\u015f\u0131lan dosya bilgilerini nas\u0131l daha detayl\u0131 analiz edece\u011fimizi ve bu veriyi otomatik olarak bir Google E-Tablosuna nas\u0131l aktaraca\u011f\u0131m\u0131z\u0131 g\u00f6rece\u011fiz.<\/p>\n<p>Payla\u015f\u0131m izinlerini detayl\u0131ca analiz etmek, dosyan\u0131n kimlerle (belirli kullan\u0131c\u0131lar, gruplar, alan ad\u0131 i\u00e7indeki herkes, herkes) hangi yetkiyle (g\u00f6r\u00fcnt\u00fcleyen, yorumcu, d\u00fczenleyen) payla\u015f\u0131ld\u0131\u011f\u0131n\u0131 net bir \u015fekilde ortaya koymakt\u0131r. \u00d6zellikle \"Herkese A\u00e7\u0131k\" veya \"Ba\u011flant\u0131ya Sahip Herkes\" ayarlar\u0131, en y\u00fcksek risk te\u015fkil eden payla\u015f\u0131m t\u00fcrleridir ve bu t\u00fcr durumlar\u0131n h\u0131zl\u0131ca tespit edilmesi gerekmektedir. A\u015fa\u011f\u0131daki kod \u00f6rne\u011fi, bu detaylar\u0131 yakalayacak ve bir Google E-Tablosuna d\u00fczenli bir \u015fekilde yazacak bir fonksiyondur.<\/p>\n<pre><code>\n    function exportSharedFilesToSheet() {\n      const sheetName = \"Payla\u015f\u0131lan Dosyalar Denetim Raporu\";\n      let spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); \/\/ Aktif E-Tabloyu al\n      let sheet = spreadsheet.getSheetByName(sheetName);\n      \n      \/\/ E\u011fer rapor e-tablosu yoksa olu\u015ftur, varsa i\u00e7eri\u011fini temizle\n      if (!sheet) {\n        sheet = spreadsheet.insertSheet(sheetName);\n        sheet.appendRow([\"Dosya Ad\u0131\", \"Dosya ID\", \"URL\", \"Sahip(ler)\", \"Payla\u015fan(lar)\", \"Son G\u00fcncelleme\", \"Payla\u015f\u0131m Tipi\", \"Eri\u015fim Seviyesi\"]);\n        Logger.log(<code>\"${sheetName}\" adl\u0131 yeni rapor e-tablosu olu\u015fturuldu.<\/code>);\n      } else {\n        \/\/ Ba\u015fl\u0131klar\u0131 hari\u00e7 t\u00fcm verileri temizle\n        sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()).clearContent();\n        Logger.log(<code>\"${sheetName}\" e-tablosunun i\u00e7eri\u011fi temizlendi.<\/code>);\n      }\n    \n      const files = DriveApp.getFiles(); \/\/ Drive'daki t\u00fcm dosyalara eri\u015fim\n      let data = []; \/\/ E-Tabloya yaz\u0131lacak verileri depolamak i\u00e7in dizi\n      let fileCount = 0;\n    \n      Logger.log(\"Drive dosyalar\u0131 taran\u0131yor ve payla\u015f\u0131m bilgileri toplan\u0131yor...\");\n    \n      while (files.hasNext()) {\n        const file = files.next();\n        \n        const access = file.getAccess();\n        const permission = file.getSharingPermission();\n    \n        \/\/ Dosya \u00f6zel de\u011filse (yani bir \u015fekilde payla\u015f\u0131lm\u0131\u015fsa), detaylar\u0131n\u0131 topla\n        if (permission !== DriveApp.Permission.PRIVATE || access !== DriveApp.Access.PRIVATE) {\n    \n          const owners = file.getOwners().map(owner => owner.getEmail()).join(', ');\n          let sharersInfo = [];\n          \n          \/\/ Belirli kullan\u0131c\u0131lar i\u00e7in g\u00f6r\u00fcnt\u00fcleyen ve d\u00fczenleyen bilgilerini al\n          file.getViewers().forEach(viewer => sharersInfo.push(<code>${viewer.getEmail()} (G\u00f6r\u00fcnt\u00fcleyen)<\/code>));\n          file.getEditors().forEach(editor => sharersInfo.push(<code>${editor.getEmail()} (D\u00fczenleyen)<\/code>));\n    \n          \/\/ Herkese a\u00e7\u0131k veya alan ad\u0131na \u00f6zel eri\u015fim tiplerini belirle\n          if (permission === DriveApp.Permission.ANYONE_WITH_LINK) {\n            sharersInfo.push(\"Ba\u011flant\u0131ya Sahip Herkes (G\u00f6r\u00fcnt\u00fcleyebilir)\");\n          } else if (permission === DriveApp.Permission.ANYONE) {\n            sharersInfo.push(\"Herkese A\u00e7\u0131k (Genel Arama ile Bulunabilir)\");\n          } else if (permission === DriveApp.Permission.DOMAIN_WITH_LINK) {\n            sharersInfo.push(<code>\"${DriveApp.getStorageLimit().getDomain()}\" Alan Ad\u0131na Ba\u011flant\u0131 ile A\u00e7\u0131k<\/code>);\n          } else if (permission === DriveApp.Permission.DOMAIN) {\n            sharersInfo.push(<code>\"${DriveApp.getStorageLimit().getDomain()}\" Alan Ad\u0131na A\u00e7\u0131k (Genel Arama ile Bulunabilir)<\/code>);\n          }\n          \n          \/\/ Olu\u015fan veri sat\u0131r\u0131n\u0131 ekle\n          data.push([\n            file.getName(),\n            file.getId(),\n            file.getUrl(),\n            owners || \"Bilinmiyor\",\n            sharersInfo.length > 0 ? [...new Set(sharersInfo)].join('; ') : \"Sadece Sahipler\",\n            file.getLastUpdated().toISOString(),\n            permission.toString().replace(\"Permission.\", \"\"), \/\/ Okunabilirli\u011fi art\u0131r\n            access.toString().replace(\"Access.\", \"\") \/\/ Okunabilirli\u011fi art\u0131r\n          ]);\n          fileCount++;\n        }\n      }\n      \n      if (data.length > 0) {\n        \/\/ Toplanan t\u00fcm verileri e-tabloya tek seferde yaz\n        sheet.getRange(sheet.getLastRow() + 1, 1, data.length, data[0].length).setValues(data);\n        Logger.log(<code>Toplam ${fileCount} adet payla\u015f\u0131lan dosya raporland\u0131.<\/code>);\n      } else {\n        Logger.log(\"Hi\u00e7 payla\u015f\u0131lan dosya bulunamad\u0131 veya raporlanacak veri yok.\");\n      }\n      Logger.log(<code>\"Payla\u015f\u0131lan Dosyalar Denetim Raporu\" ba\u015far\u0131yla olu\u015fturuldu\/g\u00fcncellendi.<\/code>);\n    }\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu kodu, olu\u015fturdu\u011funuz Apps Script projesine yap\u0131\u015ft\u0131r\u0131n ve script.google.com adresinde \"Payla\u015f\u0131lan Dosyalar Denetim Raporu\" ad\u0131nda yeni bir Google E-Tablosu olu\u015fturun (veya mevcut bir tanesini a\u00e7\u0131n). Ard\u0131ndan, Apps Script d\u00fczenleyicisinde fonksiyonu se\u00e7ip \u00e7al\u0131\u015ft\u0131r\u0131n. Script, belirtilen E-Tablonuzu bulacak, mevcut verileri temizleyecek (ba\u015fl\u0131klar hari\u00e7) ve yeni denetim verilerini dolduracakt\u0131r. E\u011fer E-Tablo yoksa, yeni bir tane olu\u015fturacakt\u0131r.<\/p>\n<p>Olu\u015fturulan E-Tablo a\u015fa\u011f\u0131daki gibi bir yap\u0131ya sahip olacakt\u0131r:<\/p>\n<table border=\"1\">\n<thead>\n<tr>\n<th>Dosya Ad\u0131<\/th>\n<th>Dosya ID<\/th>\n<th>URL<\/th>\n<th>Sahip(ler)<\/th>\n<th>Payla\u015fan(lar)<\/th>\n<th>Son G\u00fcncelleme<\/th>\n<th>Payla\u015f\u0131m Tipi<\/th>\n<th>Eri\u015fim Seviyesi<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Gizli Proje Plan\u0131.docx<\/td>\n<td>1A2B3C4D5E<\/td>\n<td>drive.google.com\/file\/...<\/td>\n<td>user1@example.com<\/td>\n<td>user2@example.com (D\u00fczenleyen); Ba\u011flant\u0131ya Sahip Herkes (G\u00f6r\u00fcnt\u00fcleyebilir)<\/td>\n<td>2023-10-26T10:00:00Z<\/td>\n<td>ANYONE_WITH_LINK<\/td>\n<td>ANYONE<\/td>\n<\/tr>\n<tr>\n<td>\u0130nsan Kaynaklar\u0131 Politikas\u0131.pdf<\/td>\n<td>F6G7H8I9J0<\/td>\n<td>drive.google.com\/file\/...<\/td>\n<td>hr_admin@example.com<\/td>\n<td>Alan Ad\u0131na A\u00e7\u0131k (Genel Arama ile Bulunabilir)<\/td>\n<td>2023-09-15T14:30:00Z<\/td>\n<td>DOMAIN<\/td>\n<td>DOMAIN<\/td>\n<\/tr>\n<p>            <!-- Di\u011fer sat\u0131rlar dinamik olarak eklenecektir --><br \/>\n        <\/tbody>\n<\/table>\n<p>Bu rapor sayesinde, hangi dosyalar\u0131n y\u00fcksek riskli payla\u015f\u0131m ayarlar\u0131yla yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131n\u0131 (\u00f6rne\u011fin \"ANYONE\" veya \"ANYONE_WITH_LINK\"), kimin bu payla\u015f\u0131mlardan sorumlu oldu\u011funu ve son g\u00fcncellemelerin ne zaman yap\u0131ld\u0131\u011f\u0131n\u0131 kolayca g\u00f6rebilirsiniz. E-Tabloyu kullanarak verileri s\u0131ralayabilir, filtreleyebilir ve ko\u015fullu bi\u00e7imlendirme uygulayarak belirli payla\u015f\u0131m tiplerini (\u00f6rn. herkese a\u00e7\u0131k olanlar\u0131 k\u0131rm\u0131z\u0131 renkle) vurgulayabilirsiniz. Bu detayl\u0131 raporlama, veri g\u00fcvenli\u011fi ekiplerinin ve y\u00f6neticilerin h\u0131zl\u0131 ve bilin\u00e7li kararlar almas\u0131n\u0131 sa\u011flayarak potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 proaktif bir \u015fekilde kapatmalar\u0131na yard\u0131mc\u0131 olur.<\/p>\n<h2>Geli\u015fmi\u015f Denetim Senaryolar\u0131 ve Otomasyon \u0130pu\u00e7lar\u0131<\/h2>\n<p>Temel ve detayl\u0131 raporlama ad\u0131mlar\u0131n\u0131 tamamlad\u0131ktan sonra, Apps Script'in potansiyelini daha da ileriye ta\u015f\u0131yarak geli\u015fmi\u015f denetim senaryolar\u0131n\u0131 hayata ge\u00e7irebiliriz. Bu b\u00f6l\u00fcm, yaln\u0131zca raporlama yapmakla kalmay\u0131p, proaktif g\u00fcvenlik \u00f6nlemleri alarak Drive g\u00fcvenli\u011finizi nas\u0131l otomatikle\u015ftirebilece\u011finize dair ipu\u00e7lar\u0131 ve \u00f6rnekler sunmaktad\u0131r. Ama\u00e7, denetimi tek seferlik bir g\u00f6revden, s\u00fcrekli ve otomatik bir s\u00fcrece d\u00f6n\u00fc\u015ft\u00fcrmektir.<\/p>\n<h3>Zamanlanm\u0131\u015f Raporlar ve Anl\u0131k Uyar\u0131lar Nas\u0131l Kurulur?<\/h3>\n<p>Denetim raporlar\u0131n\u0131 manuel olarak \u00e7al\u0131\u015ft\u0131rmak, \u00f6zellikle b\u00fcy\u00fck kurulu\u015flarda zaman al\u0131c\u0131 olabilir. Apps Script'in tetikleyiciler (Triggers) \u00f6zelli\u011fi, belirledi\u011finiz bir program dahilinde beti\u011fi otomatik olarak \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r. B\u00f6ylece, her g\u00fcn, her hafta veya her ay otomatik olarak g\u00fcncel bir payla\u015f\u0131m raporu alabilirsiniz. Buna ek olarak, belirli bir dosya herkese a\u00e7\u0131k hale geldi\u011finde veya hassas bir dosya d\u0131\u015far\u0131dan bir kullan\u0131c\u0131yla payla\u015f\u0131ld\u0131\u011f\u0131nda an\u0131nda e-posta ile bildirim alacak uyar\u0131 mekanizmalar\u0131 kurmak da m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<p>Apps Script tetikleyicilerini kurmak i\u00e7in, Apps Script d\u00fczenleyicisinde sol paneldeki saat simgesine (Tetikleyiciler) t\u0131klay\u0131n. Ard\u0131ndan \"Tetikleyici ekle\" d\u00fc\u011fmesine t\u0131klayarak bir tetikleyici olu\u015fturabilirsiniz. Burada, hangi fonksiyonun (\u00f6rne\u011fin <code>exportSharedFilesToSheet<\/code>), hangi olay\u0131n (\u00f6rne\u011fin zamana dayal\u0131) ve ne s\u0131kl\u0131kta (\u00f6rne\u011fin her gece 01:00-02:00 aras\u0131) \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirleyebilirsiniz. Bu otomasyon, g\u00fcvenlik ekiplerinin s\u00fcrekli uyan\u0131k kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code>\n    \/\/ E-posta ile bildirim g\u00f6nderme \u00f6rne\u011fi\n    function sendAlertEmail(fileName, fileUrl, sharerInfo) {\n      const recipient = \"guvenlik_ekibi@example.com\"; \/\/ Uyar\u0131 g\u00f6nderilecek e-posta adresi\n      const subject = <code>AC\u0130L: Potansiyel G\u00fcvenlik \u0130hlali - ${fileName}<\/code>;\n      const body = <code>Merhaba,\n    \n    Google Drive&#039;da y\u00fcksek riskli bir dosya payla\u015f\u0131m\u0131 tespit edildi:\n    \n    Dosya Ad\u0131: ${fileName}\n    Dosya URL: ${fileUrl}\n    Payla\u015f\u0131m Detaylar\u0131: ${sharerInfo}\n    \n    L\u00fctfen bu payla\u015f\u0131m\u0131 acilen inceleyin ve gerekli aksiyonlar\u0131 al\u0131n.\n    \n    Sayg\u0131lar\u0131m\u0131zla,\n    Apps Script Otomatik G\u00fcvenlik Sistemi<\/code>;\n      \n      MailApp.sendEmail(recipient, subject, body);\n      Logger.log(<code>Uyar\u0131 e-postas\u0131 g\u00f6nderildi: ${fileName}<\/code>);\n    }\n    \n    \/\/ exportSharedFilesToSheet fonksiyonunda potansiyel riskli dosya bulundu\u011funda bu fonksiyonu \u00e7a\u011f\u0131rabilirsiniz.\n    \/\/ \u00d6rne\u011fin, sharersInfo i\u00e7inde \"Herkese A\u00e7\u0131k\" ifadesi ge\u00e7ti\u011finde...\n    <\/pre>\n<p><\/code><\/p>\n<h3>Yetim Dosyalar\u0131 ve Eski Eri\u015fimleri Belirleme<\/h3>\n<p>\"Yetim dosyalar\", sahibi kurulu\u015ftan ayr\u0131lm\u0131\u015f veya hesab\u0131 silinmi\u015f ancak Drive'da hala varl\u0131\u011f\u0131n\u0131 s\u00fcrd\u00fcren dosyalard\u0131r. Bu dosyalar, denetimsiz kald\u0131klar\u0131 i\u00e7in ciddi bir g\u00fcvenlik riski olu\u015fturabilir. Apps Script ile <code>DriveApp.searchFiles()<\/code> metodunu kullanarak belirli bir kullan\u0131c\u0131ya ait olmayan veya belirli bir s\u00fcre boyunca g\u00fcncellenmemi\u015f dosyalar\u0131 arayabilir, bu dosyalar\u0131n sahipli\u011fini devralabilir veya payla\u015f\u0131m izinlerini k\u0131s\u0131tlayabilirsiniz.<\/p>\n<pre><code>\n    function findOrphanedFiles() {\n      \/\/ Bu fonksiyon, belirli bir s\u00fcre boyunca g\u00fcncellenmemi\u015f ve sahibini kaybetmi\u015f dosyalar\u0131 bulmaya \u00e7al\u0131\u015f\u0131r.\n      \/\/ Not: Drive API'nin 'q' sorgu parametresi daha geli\u015fmi\u015f filtreleme sa\u011flar, ancak Apps Script'in getFiles()\n      \/\/ metoduyla do\u011frudan \"owner not in\" sorgusu yapmak s\u0131n\u0131rl\u0131d\u0131r. Bu \u00f6rnek, genel bir yakla\u015f\u0131md\u0131r.\n      \n      const files = DriveApp.getFiles(); \/\/ T\u00fcm dosyalar\u0131 al\n      let orphanedFiles = [];\n    \n      Logger.log(\"Yetim dosyalar taran\u0131yor...\");\n    \n      while (files.hasNext()) {\n        const file = files.next();\n        try {\n          const owners = file.getOwners();\n          if (owners.length === 0) { \/\/ Sahipsiz dosya (bu genellikle \u00e7ok nadir bir durumdur)\n            orphanedFiles.push({\n              name: file.getName(),\n              id: file.getId(),\n              url: file.getUrl(),\n              lastUpdated: file.getLastUpdated().toISOString()\n            });\n          }\n          \/\/ Daha geli\u015fmi\u015f senaryolar i\u00e7in, Drive API'nin Permissions.list ve Files.get gibi metodlar\u0131 kullan\u0131labilir.\n          \/\/ \u00d6rne\u011fin, Drive API ile \"owners.me\" sorgusu yap\u0131p, e\u011fer dosya size ait de\u011filse, sahibini kontrol edebilirsiniz.\n          \/\/ Bu, Apps Script'in geli\u015fmi\u015f servislerini (Advanced Drive Service) kullanmay\u0131 gerektirir.\n          \n        } catch (e) {\n          \/\/ Baz\u0131 dosyalara eri\u015fim hatas\u0131 olabilir (\u00f6rn. izinler yetersizse).\n          Logger.log(<code>Dosya &#039;${file.getName()}&#039; (${file.getId()}) i\u015flenirken hata olu\u015ftu: ${e.message}<\/code>);\n        }\n      }\n      if (orphanedFiles.length > 0) {\n        Logger.log(<code>Toplam ${orphanedFiles.length} adet yetim dosya bulundu.<\/code>);\n        orphanedFiles.forEach(detail => Logger.log(JSON.stringify(detail)));\n      } else {\n        Logger.log(\"Hi\u00e7 yetim dosya bulunamad\u0131 (veya eri\u015filebilir de\u011fil).\");\n      }\n    }\n    <\/pre>\n<p><\/code><\/p>\n<h3>Eri\u015fimleri \u0130ptal Etme ve G\u00fcvenlik Politikas\u0131 Uygulama<\/h3>\n<p>Belirli bir denetim sonucunda y\u00fcksek riskli payla\u015f\u0131mlar tespit ederseniz, Apps Script ile bu payla\u015f\u0131mlar\u0131 otomatik olarak iptal edebilirsiniz. \u00d6rne\u011fin, bir dosyan\u0131n \"Herkese A\u00e7\u0131k\" olarak payla\u015f\u0131ld\u0131\u011f\u0131n\u0131 tespit etti\u011finizde, beti\u011finiz bu dosyan\u0131n payla\u015f\u0131m ayar\u0131n\u0131 otomatik olarak \"\u00d6zel\" (Private) veya \"Alan Ad\u0131 \u0130\u00e7i\" (Domain internal) olarak de\u011fi\u015ftirebilir. Bu, manuel m\u00fcdahaleye gerek kalmadan g\u00fcvenlik politikalar\u0131n\u0131z\u0131 h\u0131zl\u0131ca uygulaman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code>\n    \/\/ \u00d6rnek: Herkese a\u00e7\u0131k bir dosyan\u0131n payla\u015f\u0131m\u0131n\u0131 \u00f6zel yapma\n    function makeFilePrivate(fileId) {\n      try {\n        const file = DriveApp.getFileById(fileId);\n        if (file.getSharingPermission() === DriveApp.Permission.ANYONE || \n            file.getSharingPermission() === DriveApp.Permission.ANYONE_WITH_LINK) {\n          file.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.PRIVATE);\n          Logger.log(<code>Dosya ID: ${fileId} - \"${file.getName()}\" herkese a\u00e7\u0131k payla\u015f\u0131m\u0131 iptal edildi ve \u00f6zel yap\u0131ld\u0131.<\/code>);\n        } else {\n          Logger.log(<code>Dosya ID: ${fileId} - \"${file.getName()}\" zaten \u00f6zel veya farkl\u0131 bir payla\u015f\u0131m tipi var.<\/code>);\n        }\n      } catch (e) {\n        Logger.log(<code>Dosya ID: ${fileId} i\u00e7in payla\u015f\u0131m ayarlar\u0131 g\u00fcncellenirken hata olu\u015ftu: ${e.message}<\/code>);\n      }\n    }\n    \/\/ Bu fonksiyonu, denetim raporunda belirledi\u011finiz riskli dosyalar i\u00e7in \u00e7a\u011f\u0131rabilirsiniz.\n    <\/pre>\n<p><\/code><\/p>\n<blockquote><p>\n      Uzman \u0130pucu: Otomasyon yaparken her zaman dikkatli olun. Otomatik de\u011fi\u015fiklikler yapmadan \u00f6nce, k\u00fc\u00e7\u00fck bir veri k\u00fcmesi \u00fczerinde test edin ve bir geri alma (undo) stratejiniz oldu\u011fundan emin olun. Ayr\u0131ca, kullan\u0131c\u0131lar\u0131 bilgilendirmek i\u00e7in bir e-posta bildirim sistemi entegre etmek, olas\u0131 kar\u0131\u015f\u0131kl\u0131klar\u0131n \u00f6n\u00fcne ge\u00e7ebilir.\n    <\/p><\/blockquote>\n<h2>Google Drive Denetimi \u0130\u00e7in Mobil Uyumluluk Neden \u00d6nemli?<\/h2>\n<p>Denetim raporlar\u0131n\u0131 olu\u015fturmak kadar, bu raporlara her yerden ve her cihazdan eri\u015febilmek de y\u00f6netici ve g\u00fcvenlik ekipleri i\u00e7in kritik bir \u00f6neme sahiptir. Google E-Tablolar\u0131'na aktard\u0131\u011f\u0131m\u0131z veriler, Google'\u0131n mobil uygulamalar\u0131 sayesinde ak\u0131ll\u0131 telefonlar ve tabletler \u00fczerinden sorunsuz bir \u015fekilde g\u00f6r\u00fcnt\u00fclenebilir, filtrelenebilir ve analiz edilebilir. Bu, \u00f6zellikle hareket halindeki y\u00f6neticilerin veya olaylara h\u0131zla m\u00fcdahale etmesi gereken g\u00fcvenlik personelinin an\u0131nda bilgiye ula\u015fmas\u0131n\u0131 sa\u011flar. Mobil uyumluluk, denetim s\u00fcrecinin esnekli\u011fini ve etkinli\u011fini art\u0131r\u0131r.<\/p>\n<p>E\u011fer Apps Script ile bir web uygulamas\u0131 veya \u00f6zel bir HTML raporu olu\u015fturmay\u0131 tercih ederseniz, bu raporun mobil cihazlarda d\u00fczg\u00fcn g\u00f6r\u00fcnt\u00fclenmesi i\u00e7in responsive tasar\u0131m prensiplerini uygulamak gerekir. HTML ve CSS kullanarak tablolar\u0131n veya di\u011fer i\u00e7eriklerin ekran boyutuna g\u00f6re otomatik olarak ayarlanmas\u0131n\u0131 sa\u011flayabilirsiniz. A\u015fa\u011f\u0131da, basit bir medya sorgusu (media query) \u00f6rne\u011fi ile bu t\u00fcr bir mobil uyumlulu\u011fun nas\u0131l sa\u011flanabilece\u011fi g\u00f6sterilmi\u015ftir. Bu, raporun dar ekranlarda bile kullan\u0131labilir kalmas\u0131na yard\u0131mc\u0131 olur:<\/p>\n<pre><code>\n    <style>\n      \/* Genel tablo stilleri *\/\n      table {\n        width: 100%;\n        border-collapse: collapse;\n        margin-bottom: 1em;\n      }\n      th, td {\n        padding: 8px;\n        text-align: left;\n        border-bottom: 1px solid #ddd;\n      }\n      th {\n        background-color: #f2f2f2;\n      }\n    \n      \/* Mobil cihazlar i\u00e7in medya sorgusu *\/\n      @media screen and (max-width: 768px) {\n        table, thead, tbody, th, td, tr {\n          display: block; \/* T\u00fcm tablo \u00f6\u011felerini blok seviyesine getir *\/\n        }\n        thead tr {\n          position: absolute; \/* Ba\u015fl\u0131k sat\u0131r\u0131n\u0131 gizle *\/\n          top: -9999px;\n          left: -9999px;\n        }\n        tr {\n          border: 1px solid #ccc;\n          margin-bottom: 0.8em; \/* Sat\u0131rlar aras\u0131nda bo\u015fluk b\u0131rak *\/\n        }\n        td {\n          border: none;\n          border-bottom: 1px solid #eee; \/* Her h\u00fccre aras\u0131na \u00e7izgi ekle *\/\n          position: relative;\n          padding-left: 50%; \/* \u0130\u00e7eri\u011fi sa\u011fa kayd\u0131rarak etikete yer a\u00e7 *\/\n          text-align: right;\n        }\n        td:before {\n          position: absolute;\n          top: 6px;\n          left: 6px;\n          width: 45%;\n          padding-right: 10px;\n          white-space: nowrap;\n          content: attr(data-label); \/* data-label \u00f6zelli\u011fini kullanarak s\u00fctun ad\u0131n\u0131 g\u00f6ster *\/\n          font-weight: bold;\n          text-align: left;\n        }\n        \/* Her h\u00fccreye s\u00fctun ad\u0131n\u0131 ta\u015f\u0131yan bir data-label eklemeyi unutmay\u0131n *\/\n        \/* \u00d6rne\u011fin: <td data-label=\"Dosya Ad\u0131\">Gizli Proje Plan\u0131.docx<\/td> *\/\n      }\n    <\/style>\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu CSS kodu, varsay\u0131msal bir HTML raporunda kullan\u0131ld\u0131\u011f\u0131nda, tablo ba\u015fl\u0131klar\u0131n\u0131 gizleyerek ve her bir h\u00fccrenin \u00f6n\u00fcne \"data-label\" \u00f6zelli\u011fi ile s\u00fctun ad\u0131n\u0131 getirerek, verilerin mobil cihazlarda daha okunabilir olmas\u0131n\u0131 sa\u011flar. Ancak, Apps Script ile genellikle Google E-Tablolar\u0131 kullan\u0131ld\u0131\u011f\u0131 i\u00e7in, Google'\u0131n kendi mobil uygulamalar\u0131n\u0131n bu uyumlulu\u011fu zaten sa\u011flad\u0131\u011f\u0131n\u0131 belirtmek \u00f6nemlidir. Bu sayede, ek bir kodlama \u00e7abas\u0131 olmadan mobil cihazlardan denetim raporlar\u0131n\u0131za eri\u015fim kolayla\u015f\u0131r.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Google Drive'da payla\u015f\u0131lan dosyalar\u0131 Apps Script ile denetlemek, kurulu\u015flar\u0131n veri g\u00fcvenli\u011fini art\u0131rma, uyumluluk gereksinimlerini kar\u015f\u0131lama ve operasyonel verimlili\u011fi y\u00fckseltme konusunda kritik bir yetenek kazanmas\u0131n\u0131 sa\u011flar. Bu makalede, Apps Script'in temel prensiplerinden ba\u015flayarak, payla\u015f\u0131lan dosyalar\u0131 listeleme, detayl\u0131 izin analizleri yapma ve bu verileri Google E-Tablolar\u0131na raporlama s\u00fcre\u00e7lerini ad\u0131m ad\u0131m ele ald\u0131k. Ayr\u0131ca, zamanlanm\u0131\u015f otomasyonlar, yetim dosyalar\u0131n tespiti ve g\u00fcvenlik politikalar\u0131n\u0131n otomatik uygulanmas\u0131 gibi geli\u015fmi\u015f senaryolara da de\u011findik. Bu teknikleri kullanarak, manuel denetimlerin getirdi\u011fi zaman kayb\u0131n\u0131 ve insan hatas\u0131 riskini minimize edebilir, hassas verilerinizi daha g\u00fcvende tutabilirsiniz.<\/p>\n<p>Unutmay\u0131n ki veri g\u00fcvenli\u011fi s\u00fcrekli bir \u00e7aba gerektirir. Apps Script ile kuraca\u011f\u0131n\u0131z bu denetim sistemi, bu \u00e7aban\u0131n \u00f6nemli bir par\u00e7as\u0131 olacak ve sizi potansiyel risklere kar\u015f\u0131 bir ad\u0131m \u00f6ne ta\u015f\u0131yacakt\u0131r. D\u00fczenli denetimler ve proaktif yakla\u015f\u0131mlar sayesinde, hem i\u00e7 hem de d\u0131\u015f tehditlere kar\u015f\u0131 daha diren\u00e7li bir dijital ortam yaratman\u0131z m\u00fcmk\u00fcn olacakt\u0131r. \u015eimdi, akl\u0131n\u0131za tak\u0131labilecek baz\u0131 sorular\u0131 yan\u0131tlayal\u0131m:<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li>\n            <strong>S: Apps Script ile t\u00fcm Drive'\u0131m\u0131 denetleyebilir miyim, yoksa sadece bana ait dosyalar\u0131 m\u0131?<\/strong><br \/>\n            C: Varsay\u0131lan olarak, Apps Script betikleri genellikle beti\u011fi \u00e7al\u0131\u015ft\u0131ran kullan\u0131c\u0131n\u0131n Drive'\u0131ndaki (sahip oldu\u011fu veya onunla payla\u015f\u0131lan) dosyalara eri\u015febilir. Kurulu\u015funuzun t\u00fcm Drive'\u0131n\u0131 (t\u00fcm kullan\u0131c\u0131lar\u0131n dosyalar\u0131n\u0131) denetlemek i\u00e7in, Google Workspace y\u00f6neticisi olman\u0131z ve beti\u011fi alan ad\u0131 genelinde yetkilendirilmi\u015f bir hizmet hesab\u0131 (service account) \u00fczerinden \u00e7al\u0131\u015ft\u0131rman\u0131z veya Drive API'nin geli\u015fmi\u015f yetkilendirme se\u00e7eneklerini kullanman\u0131z gerekebilir. Bu, genellikle daha b\u00fcy\u00fck kurulu\u015flar\u0131n ihtiya\u00e7 duydu\u011fu bir senaryodur ve \"Alan Ad\u0131 Genelinde Yetki (Domain-wide Delegation)\" \u00f6zelli\u011fi ile sa\u011flan\u0131r.\n        <\/li>\n<li>\n            <strong>S: Apps Script'in \u00e7al\u0131\u015fmas\u0131 ne kadar g\u00fcvenlidir?<\/strong><br \/>\n            C: Apps Script, Google'\u0131n g\u00fcvenli altyap\u0131s\u0131nda \u00e7al\u0131\u015f\u0131r ve OAuth 2.0 protokol\u00fcn\u00fc kullanarak hizmetlere eri\u015fim izinlerini y\u00f6netir. Bu, beti\u011finize yaln\u0131zca sizin veya kurulu\u015funuzun onaylad\u0131\u011f\u0131 izinlerin verilece\u011fi anlam\u0131na gelir. Kendi yazd\u0131\u011f\u0131n\u0131z betikler i\u00e7in g\u00fcvenli\u011fi sa\u011flamak sizin sorumlulu\u011funuzdad\u0131r; k\u00f6t\u00fc ama\u00e7l\u0131 kod yazmaktan veya gereksiz izinler istemekten ka\u00e7\u0131nmal\u0131s\u0131n\u0131z.\n        <\/li>\n<li>\n            <strong>S: Olu\u015fturdu\u011fum denetim raporu \u00e7ok b\u00fcy\u00fck olursa ne yapmal\u0131y\u0131m?<\/strong><br \/>\n            C: E\u011fer Drive'\u0131n\u0131zdaki dosya say\u0131s\u0131 \u00e7ok fazlaysa ve raporunuz \u00e7ok b\u00fcy\u00fck hale geliyorsa, Apps Script'in y\u00fcr\u00fctme s\u00fcresi limitlerine (genellikle 6 dakika) tak\u0131labilirsiniz. Bu durumda, beti\u011finizi daha k\u00fc\u00e7\u00fck par\u00e7alara ay\u0131rarak veya yaln\u0131zca belirli kriterlere uyan dosyalar\u0131 (\u00f6rne\u011fin son 30 g\u00fcnde g\u00fcncellenenler) denetleyerek optimize edebilirsiniz. Ayr\u0131ca, verileri par\u00e7a par\u00e7a i\u015fleyip e-tabloya yazmak da bir \u00e7\u00f6z\u00fcm olabilir.\n        <\/li>\n<li>\n            <strong>S: Apps Script ile bir dosyan\u0131n payla\u015f\u0131m\u0131n\u0131 otomatik olarak de\u011fi\u015ftirebilir miyim?<\/strong><br \/>\n            C: Evet, <code>file.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.PRIVATE)<\/code> gibi fonksiyonlarla bir dosyan\u0131n payla\u015f\u0131m ayarlar\u0131n\u0131 programatik olarak de\u011fi\u015ftirebilirsiniz. Ancak bu t\u00fcr i\u015flemleri yaparken \u00e7ok dikkatli olmal\u0131, \u00f6nceden kapsaml\u0131 testler yapmal\u0131 ve kullan\u0131c\u0131lar\u0131 bilgilendirmeyi unutmamal\u0131s\u0131n\u0131z. Yanl\u0131\u015fl\u0131kla kritik dosyalara eri\u015fimi kapatmak i\u015f s\u00fcre\u00e7lerini aksatabilir.\n        <\/li>\n<li>\n            <strong>S: Bu Apps Script \u00e7\u00f6z\u00fcm\u00fc \u00fccretli mi?<\/strong><br \/>\n            C: Hay\u0131r, Google Workspace kullan\u0131c\u0131lar\u0131 i\u00e7in Apps Script kullan\u0131m\u0131 genellikle \u00fccretsizdir ve belirli g\u00fcnl\u00fck kotalar dahilinde \u00e7al\u0131\u015f\u0131r. Bu kotalar, \u00e7o\u011fu k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli kurulu\u015fun veya bireysel kullan\u0131c\u0131n\u0131n ihtiya\u00e7lar\u0131 i\u00e7in fazlas\u0131yla yeterlidir. Daha y\u00fcksek kotalara ihtiya\u00e7 duyan \u00e7ok b\u00fcy\u00fck kurulu\u015flar i\u00e7in ek se\u00e7enekler mevcut olabilir, ancak temel denetim g\u00f6revleri i\u00e7in ek bir maliyetle kar\u015f\u0131la\u015fmazs\u0131n\u0131z.\n        <\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Google Drive&#8217;da payla\u015f\u0131lan dosyalar\u0131n\u0131z\u0131n tam kontrol\u00fcn\u00fc ele almak, veri g\u00fcvenli\u011fi ve uyumluluk a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Bu teknik&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-33379","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>Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu<\/title>\n<meta name=\"description\" content=\"Google Drive&#039;da payla\u015f\u0131lan dosyalar\u0131n\u0131z\u0131n tam kontrol\u00fcn\u00fc ele almak, veri g\u00fcvenli\u011fi ve uyumluluk a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Bu teknik makalede, Google Apps Script&#039;in g\u00fc\u00e7l\u00fc yeteneklerini kullanarak Drive&#039;daki t\u00fcm payla\u015f\u0131lan dosyalar\u0131 nas\u0131l denetleyece\u011finizi, riskleri nas\u0131l belirleyece\u011finizi ve veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 nas\u0131l \u00f6nleyece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\" \/>\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\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu\" \/>\n<meta property=\"og:description\" content=\"Google Drive&#039;da payla\u015f\u0131lan dosyalar\u0131n\u0131z\u0131n tam kontrol\u00fcn\u00fc ele almak, veri g\u00fcvenli\u011fi ve uyumluluk a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Bu teknik makalede, Google Apps Script&#039;in g\u00fc\u00e7l\u00fc yeteneklerini kullanarak Drive&#039;daki t\u00fcm payla\u015f\u0131lan dosyalar\u0131 nas\u0131l denetleyece\u011finizi, riskleri nas\u0131l belirleyece\u011finizi ve veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 nas\u0131l \u00f6nleyece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-02T03:01:54+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\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu\",\"datePublished\":\"2025-11-02T03:01:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/\"},\"wordCount\":3339,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/\",\"name\":\"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-02T03:01:54+00:00\",\"description\":\"Google Drive'da payla\u015f\u0131lan dosyalar\u0131n\u0131z\u0131n tam kontrol\u00fcn\u00fc ele almak, veri g\u00fcvenli\u011fi ve uyumluluk a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Bu teknik makalede, Google Apps Script'in g\u00fc\u00e7l\u00fc yeteneklerini kullanarak Drive'daki t\u00fcm payla\u015f\u0131lan dosyalar\u0131 nas\u0131l denetleyece\u011finizi, riskleri nas\u0131l belirleyece\u011finizi ve veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 nas\u0131l \u00f6nleyece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu\"}]},{\"@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":"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu","description":"Google Drive'da payla\u015f\u0131lan dosyalar\u0131n\u0131z\u0131n tam kontrol\u00fcn\u00fc ele almak, veri g\u00fcvenli\u011fi ve uyumluluk a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Bu teknik makalede, Google Apps Script'in g\u00fc\u00e7l\u00fc yeteneklerini kullanarak Drive'daki t\u00fcm payla\u015f\u0131lan dosyalar\u0131 nas\u0131l denetleyece\u011finizi, riskleri nas\u0131l belirleyece\u011finizi ve veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 nas\u0131l \u00f6nleyece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","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\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/","og_locale":"tr_TR","og_type":"article","og_title":"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu","og_description":"Google Drive'da payla\u015f\u0131lan dosyalar\u0131n\u0131z\u0131n tam kontrol\u00fcn\u00fc ele almak, veri g\u00fcvenli\u011fi ve uyumluluk a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Bu teknik makalede, Google Apps Script'in g\u00fc\u00e7l\u00fc yeteneklerini kullanarak Drive'daki t\u00fcm payla\u015f\u0131lan dosyalar\u0131 nas\u0131l denetleyece\u011finizi, riskleri nas\u0131l belirleyece\u011finizi ve veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 nas\u0131l \u00f6nleyece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-02T03:01:54+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\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu","datePublished":"2025-11-02T03:01:54+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/"},"wordCount":3339,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/","url":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/","name":"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-02T03:01:54+00:00","description":"Google Drive'da payla\u015f\u0131lan dosyalar\u0131n\u0131z\u0131n tam kontrol\u00fcn\u00fc ele almak, veri g\u00fcvenli\u011fi ve uyumluluk a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Bu teknik makalede, Google Apps Script'in g\u00fc\u00e7l\u00fc yeteneklerini kullanarak Drive'daki t\u00fcm payla\u015f\u0131lan dosyalar\u0131 nas\u0131l denetleyece\u011finizi, riskleri nas\u0131l belirleyece\u011finizi ve veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 nas\u0131l \u00f6nleyece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/apps-script-ile-google-drive-paylasilan-dosya-denetimi-guvenligi-artirma-kilavuzu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Apps Script ile Google Drive Payla\u015f\u0131lan Dosya Denetimi: G\u00fcvenli\u011fi Art\u0131rma K\u0131lavuzu"}]},{"@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\/33379","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=33379"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33379\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}