[ Web Proxy ]
URL:
Viewing: https://tr.javascript.info/cookie [Back]  [Original]

Cookies, document.cookie
TR

Bu ak-kaynakl projenin tm dnyada kullanlabilir olmasn istiyoruz.

Kendi dilinizde eviriye yardm edebilirsiniz!

    Javascript.info'da ara:
    Eitimde ara:
    Light themeDark theme
    DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek

    Cookies, document.cookie

    erezler, dorudan taraycda depolanan kk veri dizileridir. erezler RFC 6265 teknik artnamesi tarafndan tanmlanan HTTP protokolnn bir parasdrlar.

    ou zaman, erezler bir web sunucusu tarafndan ayarlanr. Daha sonra ayn etki alanna yaplan her istee otomatik olarak eklenirler.

    En yaygn kullanm alanlarndan biri kimlik dorulamadr:

    1. Oturum aldnda, sunucu session identifier ieren bir erez ayarlamak iin, gnderilen istee verdii yantta Set-Cookie HTTP baln kullanr.
    2. Gelecek sefere istek ayn etki alanndan yapldnda, tarayc Cookie HTTP-header balan kullanarak a zerinden gnderir.
    3. Bylece sunucu istein kim tarafndan yapldn bilir.

    Ayrca document.cookie zelliini kullarak erezelere taraycdan da eriebiliriz.

    erezler ve seenekleri hakknda birok ince detay var. Bu blmde bunlar ayrntl olarak ele alacaz.

    Reading from document.cookie

    Bu sitede hi erezin var m? Hadi grelim:

    // javascript.info sitesinde, biz istatistikler iin Google Analytics kullanrz,
    // bu yzden baz erezler olmal
    alert( document.cookie ); // cookie1=value1; cookie2=value2;...

    document.cookie deeri ; ile ayrlm name=value iftlerinden oluur. Her biri ayr bir erezdir.

    Bellirli bir erezi bulmak iin, document.cookie yi ; ile ayrabiliriz ve sonra doru ismi bulabiliriz. Ayrca bunu yapmak iin dzenli ifadeler (regular expresion) veya dizi methodlarn da kullanabiliriz.

    Bunu okuyucu iin bir egseriz olarak brakyoruz. Ayrca, bu blmn sonunda yardmc fonksiyonlar ve zerinde deiiklik yapabileceiniz erezler bulacaksnz.

    document.cookie ye yazma

    document.cookie ye yazabilir. Ancak bu bir veri zellii deildir, bu bir eriimdir.

    document.cookie yazlan bir ilemi, taraycnda sayesinde belirttiimiz erezleri gnceller fakat bu, dier erezleri etkilemez.

    rnein, bu ismi user ve deeri John olan bir erezi ayarlar :

    document.cookie = "user=John"; // sadece 'user' isimli erezi gnceller
    alert(document.cookie); // tm erezleri gster

    Eer komutu altrrsanz, muhtemelen birden fazla erez greceksiniz. Bunun nedeni document.cookie= ilem tm erezleri etkilemedii iindir. Sadece user adl erezi deitirir.

    Tekinik olarak, isim ve deer herhangi bir karakter ierebilir, fakat geerli bir atama yapmak iin encodeURIComponent yerleik fonksiyonu kullanlmaldr:

    // special values, need encoding
    let name = "my name";
    let value = "John Smith"
    
    // encodes the cookie as my%20name=John%20Smith
    document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);
    
    alert(document.cookie); // ...; my%20name=John%20Smith
    Limitations

    Birka kstlama vardr:

    • encodeURIComponent fonksiyonunu kullanrken name=value ifti 4kb yi gememelidir. Yani br erezde ok byk bir deer tutulamaz.
    • Kesin snr taraycnn trne bal olmakla birlilte, etki alan bana toplam erez says 20+ ile snrldr.

    erezlerin birka seenei vardr, bunlarn ou nemli ve ayarlanmas gerekir.

    Seenekler key=value ile belirtilmi ve ; ile ayrlm, aadaki gibi listelenir:

    document.cookie = "user=John; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT"

    path

    • path=/mypath

    erezin URL neki ulalabilir olmaldr. Tam olmaldr. Varsaylan olarak, geerli yoldur.

    Eer bir erez path=/admin olarak ayarlandysa, bu erez /admin ve /admin/something sayfalarnda grlebilir, ancak /home ya da /adminpage sayfalarnda grnmez.

    Genelde, biz erezin tm web sayfalarnda eriebilir olmas iin path=/ eklinde ayarlarz.

    domain

    • domain=site.com

    erezlere etki alan zerinden eriilebilir. Ancak pratikte baz kstlamalar vardr. Bu erezleri herhangi bir etki alanna ayarlayamayz.

    Varsaylan olarak, bir erez sadece onu ayarladmz etki alanndan eriilebilir. Yani, eer erez site.com etki alanna ayarlanmsa, biz ona other.com etki alanndan eriemeyiz.

    Ancak daha ilgin olan, forum.site.com alt etki alnndan da erezlere eriilemez.

    //  diyelim ki site.com alan adl sitede yle bir erez atamas yaplm olsun
    document.cookie = "user=John"
    
    // forum.site.com alt etki alanndan ayn ereze erimeye altmzda kt aadaki gibi olur
    alert(document.cookie); // kullanc yok

    Bir erezin baka 2.seviye bir etki alanndan eriilebilmesini salamann bir yolu yok, bu nedenle other.com sitesi hibir zaman site.com sitesinde ayarlanm bir ereze eriemeyeektir.

    Bunun sebebi, nemli verileri erezlerde saklamamza izin veren bir gnvelik snrlamasdr.

    Ancak forum.site.com gibi alt alan adlarna eriim izni vermek istiyorsak, bu mmkndr. Bunun iin domain seeneini aka domain=site.com seeneine ayarlamamz gerekiyor:

    //  site.com etki alnnda, herhangi bir alt etki alanna yle ayarlayabiliriz:
    document.cookie = "user=John; domain=site.com"
    
    // forum.site.com alt alanndan erezlere erielim
    alert(document.cookie); // kt: kullanclar

    Gemiten gelen nedenlerden dolay, domain=.site.com (banda bir nokta ile) eklinde de alr, ok eski tarayclar desteklemek in noktay eklemek daha iyi olabilir.

    Dolaysyla, domain seenei, erezlere alt alan adlarndan da erimeyi izin verir.

    expires, max-age

    Varsaylan olarak, eer bir erez bu seeneklerden birine sahip deilse, tarayc kapatldnda erezler de yok olur. Bu tr erezlere session cookies denir.

    Tarayc kapatldnda bile erezlerin yok olmasn engellemek iin expires ya da max-age seeneklerinden birini ayarlamak gerekir.

    • expires=Tue, 19 Jan 2038 03:14:07 GMT

    Bu rnekte, taraycnn 19 Ocak 2038 e kadar erezi otomatik olarak tutumasn ve sresi dolunca silmesini salar.

    Tarih, kesinlikle GMT zaman dilimi formatnda olmal. Bu format elde etmek iin date.toUTCString methodunu kullanabiliriz. rnein, erezi 1 gn sonra yok olacak ekilde ayarlabiliriz:

    // +1 day from now
    let date = new Date(Date.now() + 86400e3);
    date = date.toUTCString();
    document.cookie = "user=John; expires=" + date;

    Eer erezin expires seeneini gemiteki bir tarihe ayarlarsak, erez silinir.

    • max-age=3600

    expires seeneine alternatif olarak, erezi geerli andan itibaren saniye trnden yok olmasn belirtir.

    Eer saniye, sfr ya da negatif bir say olursa, erez silinir.

    // erez ayarland zamandan bir saat sonra silinir.
    document.cookie = "user=John; max-age=3600";
    
    // erezi sil (erezin sresinin sona ermesine izin ver)
    document.cookie = "user=John; max-age=0";

    secure

    • secure

    erez sadece HTTPS zerinden gnderilmelidir.

    Varsaylan olarak, eer http://site.com sitesi zerinden bir erez ayarlarsak, bu ayn zamanda https://site.com sitesi zerinden grnr ve tersi de mmkndr.

    Yani, erezler etki alan tabanldr, protokoller arasnda ayrm yapmaz.

    Bu seenekle beraber, eer bir erez hassas bilgiler ieriyorsa, durum deiir. Yani bir erez https://site.com etki alanna ayarlamsa, bu ereze http://site.com zerinden eriem mmkn deildir, nk HTTP ile HTTPS arasnda S gnvelik flag vardr. Bu da erezlere eriilmesini engeller. Sonu olarak hassas bilgilere sahip erezleriniz varsa HTTPS protokln kullanmanz daha doru olur.

    // assuming we're on https:// now
    // set the cookie secure (only accessible if over HTTPS)
    document.cookie = "user=John; secure";

    samesite

    Bu, XSRF (siteler aras sahte istek) saldrlarndan korunmak iin baka bir gvenlik seeneidir.

    Bu seenein ne zaman iimize yarayacan anlamak iin aadaki senaryoya bakalm.

    XSRF attack

    bank.com sitesine giri yaptnz dnn. Yani: bu siteden bir tane kimlik dorulama ereziniz var. Taraycnzla bank.com sitesine her giri yaptnzda, taraycnz bu erezi bank.com sitesinin bulunduu sunucuya gnderir, bylece bank.com sitesi sizi tanr ve tm hassas finansal ilemlerinizi gerekletirir.

    imdi, baka bir sekmede internette gezinirken (evil.com), bu sitede (evil.com) de bilgisayar korsanna ait bir giri hesab var ve bu site zaman zaman

    ile bank.com sitesine otomatik olarak bir form istei gnderiyor.

    Bu form kayt istei evil.com sitesi zerinden dorudan bank.com sitesine istekler gnderir ve siz bank.com sitesini her ziyaret ettiinizde gnderildii iin otomatik olarak bu siteye de size gnderilen erezin ayns gnderilir. Bylece bilgisayar korsan kendi bilgiyasar zerinden ilem yaptnda, bank.com sitesinin sunucusu bunun siz olduunuzu varsayp, yaplan tm finansal ilemlere onay verir.

    []

    Buna, siteler aras istek sahtecilii (ya da XSRF) saldrs denir.

    Tabi ki, gerek bankalar buna kar koruma salarlar. bank.com tarafndan oluturulan tm formlarn zel bir alan vardr, buna xsrf protection token (xsrf koruma belirteci) denir, kt niyetli biri ne bir form oluturabilir ne de buradan uzaktan veri ekebilir (formu kayt edebilir ancak veriyi geri alamaz).

    Ancak bunu uygulamak zaman alr, her formun token (belirte) alanna sahip olduundan emin olmalyz ve ayrca tm istekleri kontrol etmemiz gerekir.

    Enter cookie samesite option

    samesite seenei, bu tr saldrlardan korunmak iin, (teorik olarak) xsrf protection tokens kullanmay gerektirmeyen, baka bir yol salar.

    Olas iki deeri vardr:

    • samesite=strict (same as samesite without value)

    samesite=strict

    samesite=strict zelliine sahip bir erez, kullancnn web sitesine dardan geldii durumlarda hibir zaman tarayc tarafndan gnderilmez veya paylalmaz. Bu, erezin sadece ayn web sitesi iindeki isteklerde kullanlmasn ve dier web siteleriyle paylalmamasn salayan bir gvenlik nlemidir.

    Baka bir deyile, bir kullanc e-postalarndan bir balanty takip etse veya evil.com 'dan bir form gnderse veya baka bir alan alanndan kaynaklanan herhangi bir ilem yapsa da erez gnderilmez.

    Eer kimlik dorulama erezleri samesite seeneine sahipse, XSRF saldrsnn baarl olma ans yoktur, nk evil.com gelen istekler erezler olmadan gelir. Bylece bank.com sitesi kullancy tanmayacak ve deme ilemi gereklemeyecektir.

    Koruma olduka gvenilirdir. Yalnzca bank.com sitesi ierisinden gelen ilemlere samesite erezi gnderecektir.

    Yine de, kk bir sknt var.

    Bir kullanc kendi bilgisayarnda not defterine bank.com sitesine giden gerek bir link kaydettiinde ve daha sonra bu linke tklayp ilem yapmaya altnda, ilgin bir ekilde karlaca durum, tekrardan oturum amas gerektiidir. Aslnda, samesite=strict erezleri bu durumda gnderilmez.

    Bu durumu iki erez kullarak aabiliriz: birincisi general recognition (genel tanma) iin, bunun amac sadece Hello, John gibi mesajlar gsterme amac iin kullanlr, ve dieri de samesite=strict zellii ile verileri deitirmek iindir. O zaman eer kii site dndan geliyorsa hogeldin mesajn grecektir, ancak yine de ilem yapmak iin (deme vs.) bankann kendi sitesinden iinden ilem balatmak zorundadr.

    • samesite=lax

    XSRF saldrsndan korunmak ve kullanc deneyimini olumsuz etkilememek iin daha iyi bir yaklamdr.

    Lax modu, strict modu gibi, taraycnn site dndan gelen istekleri erezleri gndermesini engeller, ancak bir istisna ekler.

    Eer aadaki her iki koul varsa samesite=lax erezi gnderilir:

    1. HTTP methodu eer gvenli ise (rnein GET, ama POST deilse).

      RFC7231 specification (RFC7231 teknik artnamesi) nin gvenli yntemlerinin tam listesini burada bulabilirsiniz. Temel olarak, bunlar veriyi yazmak iin deil, okumak iin kullanlmas gereken yntemlerdir. Herhangi bir veriyi deitirmek iin kullanlmamaldr. Bir link balantsn takip etmenin daima en gvenli yolu GET yntemidir.

    2. Bu ilem st seviye gezinti gerekletirir (tarayc adres ubuundaki URLyi deitirir).

      Bu durum genellikle olur, ancak bu bir <iframe> HTML elementi (bir sayfa iine dkmanlar, videolar ve interaktif medya yerletirmenizi salayan bir HTML elementi) iindeyse, o zaman bu st seviye bir gezinti deildir, Ayrca, AJAX istekleri de st seviye gezintiyi deitirmediinden, onlar da ayn kapsamdadr.

    Yani, samesite=laxnin yapt ey temel olarak en yaygn go to URL ilemlerinin erezlere erimesine izin vermektir. rnein, notlardan bir web sitesi balants amak gibi bu koullar karlar.

    Ancak baka siteden gelen AJAX istekleri veya bir form gnderimi gibi daha karmak ilemler bu erezlere eriemezler.

    Eer bu sizin iin uygunsa, o zaman samesite=lax eklemek muhtemelen size korumak salayacak ve kullanc deneyiminizi olumsuz etkilemeyecektir.

    Genel olarak, samesite harika bir seenektir, ancak nemli bir dezavantaj vardr:

    • samesite 2017 ve nceki tarayclar tarafndan desteklenmez (yok saylr).

    Dolaysyla, koruma salamak iin yalnzca samesite gvenirsek, eski tarayclar savunmasz kalacaktr.

    Fakat, ek bir savunma katman eklemek iin samesitei,xsrf belirteleri gibi, dier koruma nlemleriyle birlikte kullanabiliriz, gelecekte, eski tarayclar kullanmdan kaldrldnda (internet explorer gibi), muhtemelen xsrf belirtelerini kullanmay brakabiliriz.

    httpOnly

    Bu seenein JavaScript ile hibir ilgisi yoktur, ancak konu btnlnden dolay bundan da bahsetmemiz gerekiyor.

    Web sunucular erezleri ayarlamak iin Set-Cookie baln kullanr. Ve bunu yaparken httpOnly seeneine ayarlanmas gerekir.

    Bu seenek, erezlere herhangi bir JavaScript eriimini engeller. Byle bir erezi gremeyiz ya da document.cookie seeneini ile stnde deiiklikler yapamyz.

    Bu, bir bilgisayar korsannn kendi JavaScript kodunu bir sayfaya enjekte etmesi ve kullancnn bu sayfay ziyaret etmesini beklemesi durumunda belirli saldrlardan korunmak iin bir nlem olarak kullanlr. Buna hibir zaman izin verilmemeli, bir bilgisayar korsan kendi kodunu sitemize enjekte edememelidir, ancak bilgisayar korsanlarnn bunu yapmasna izin veren hatalar olabilir.

    Normalde, eer byle bir ey olursa ve bir kullanc bilgisayar korsannn kodunu ieren bir web sayfasn ziyaret ederse, bu kod alr ve kimlik dorulama bilgilerini ieren erezlerine document.cookie seenei ile eriir. Berbat bir durum.

    Ancak eer bir erez httpOnly ise, document.cookie bu erezi gremez, bu nedenle bilgilerimiz korunur.

    Appendix: Cookie functions

    Aada erezlerle almak iin document.cookie ile erezleri manuel olarak deitirmekten daha kullanl bir fonksiyon var.

    Bunun iin yaynlanm birok erez ktphanesi vardr, bu yzden bunlar sadece gsterim amal. Yine de tamamen alyor.

    getCookie(name)

    Bir ereze erimenin ksa yolu regular expression (buradan daha detayl bakabilirsiniz) yntemini kullanmaktr.

    getCookie(name) fonksiyonu name ad verilen erezi geriye dndrr:

    // verilen isme sahip erezi geri dndrr,
    // ya da bulamazsa undefined geri dndrr
    function getCookie(name) {
      let matches = document.cookie.match(new RegExp(
        "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
      ));
      return matches ? decodeURIComponent(matches[1]) : undefined;
    }

    Burada new RegExp snf dinamik olarak oluturulur, eletirmek iin ; name=<value> kullanlr.

    Ltfen bir erez deerinin ifrelenmi olduunu unutmayn, bu nedenle getCookie fonksiyonu erezlerin ifresini(encode => decode) zmek iin decodeURIComponent yerleik methodunu kullanr.

    setCookie(name, value, options)

    erezi verilen name ve valueifti ile varsaylan olarak path=/ 'a ayarlar (baka varsaylanlar eklemek iin deitirilebilir):

    function setCookie(name, value, options = {}) {
    
      options = {
        path: '/',
        // eer istersek baka varsaylanlar da buraya ekleyebiliriz
        ...options
      };
    
      if (options.expires.toUTCString) {
        options.expires = options.expires.toUTCString();
      }
    
      let updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value);
    
      for (let optionKey in options) {
        updatedCookie += "; " + optionKey;
        let optionValue = options[optionKey];
        if (optionValue !== true) {
          updatedCookie += "=" + optionValue;
        }
      }
    
      document.cookie = updatedCookie;
    }
    
    // Bizim iin bir rnek:
    setCookie('user', 'John', {secure: true, 'max-age': 3600});

    deleteCookie(name)

    Bir erezi silmek iin, onu negatif bir son kullanma tarihi ile arabiliriz:

    function deleteCookie(name) {
      setCookie(name, "", {
        'max-age': -1
      })
    }
    Updating or deleting must use same path and domain

    nemli not: bir erezi gncellediimizde ya da sildiimizde, daha nce kullandmz path ve domain seeneklerinin tam olarak aynsn kullanmalyz.

    Tm fonksiyonlar: cookie.js.

    Appendix: Third-party cookies

    Bir erez, kullancnn ziyaret ettii baka bir etki alan tarafndan yerletirilmise buna third-party (nc taraf) denir.

    rnein:

    1. site.com sitesindeki bir sayfa baka bir siteden banner ykler: <img src="https://ads.com/banner.png">.

    2. Banner ile birlikte, ads.com adl uzak sunucu id=1234 gibi bir erezi Set-Cookie yntemiyle balk olarak ayarlayabilir. Bu erez ads.com etki alanndan gelir, ve yalnca ads.com sitesinde grnr:

      []
    3. Bir dahaki sefere ads.com sitesine eriildiinde, uzak sunucu id erezini alr ve kullancy tanr:

      []
    4. Daha da nemlisi, kullanclar site.com sitesinden banneri olan baka bir siteye other.com getiinde, o zaman, erez ads.com sitesine ait olduu iin, ads.com sitesi ereze eriebilir, bylelikle ziyaretiyi tanr ve siteler arasnda gezinirken onu izler:

      []

    nc taraf(third-party) erezleri, doalar gerei, geneleneksel olarak izleme ve reklam hizmetleri iin kullanlr. Bunlar kaynak etki alanna baldr, bu yzden ads.com, ona erien farkl siteler arasnda ayn kullancy takip edebilir.

    Doal olarak, baz insanlar takip edilmeyi sevmezler, bu yzden tarayc bu tr erezlerin devre d braklmasna izin verir.

    Ayrca, baz modern tarayclar bu tr erezler iin zel politikalar uygular:

    • Safari nc parti erezlerine hi izin vermez.
    • Firefox nc taraf erezleri kullanan etki alanlarna ait bir black list liste seenei sunar.
    Dikkate deer:

    nc taraf bir etki alanndan bir script (komut dosyasn) yklersek, rnein <script src="https://google-analytics.com/analytics.js">, ve bu script (komut dosyasn) document.cookie zelliini kullanarak bir erez ayarlamak iin kullanrsa, bu erez nc taraf erezi deildir.

    Eer script(komut dosyasn) erezleri ayarlarsa, o zaman komut dosyasnn nereden geldiinin bir nemi yoktur bu erez web sayfasnn etki alanna aittir.

    Appendix: GDPR

    Bu konu JavaScript ile ilgili deildir, sadece erezleri ayarlarken aklda tutulmas gereken bir durumdur.

    Avrupada GDPR ad verilen ve web sitelerinin kullanclarn gizliliine sayg gstermesi iin bir dizi kural uygulayan bir mevzuat var. Bu kurallardan biri de erezlerin izlenmesi iin kullancdan ak bir izin alnmasdr.

    Ltfen dikkat, bu yalnzca erezleri izleme/tanmlama hakkndadr.

    Dolaysyla, yalnzca baz bilgileri kaydeden, ancak kullancy izlemeyen veya tanmlamayan bir erez ayarlarsak, bunu yapmakta zgrz.

    Ancak kimlik dorulama oturumu veya kiiyi izmelek iin bir erez oluturacaksak, bunun iin kullancdan izin almak zorundayz.

    Genelde web siteleri GDPR nin iki varyantn takip ederler. Bunlar zaten webde grmsnzdr:

    1. Eer bir web sitesi izleme erezlerini yalnzca kimlii dorulanm kullanclar iin ayarlamak istiyorsa.

      Bunu yapmak iin, kayt formunda gizlilik politikasn kabul et gibi bir onay kutusu bulunmal, kullanc bunu iaretlemeli ve ardndan web sitesi auth(kimlik dorulama) erezlerini ayarlamakta zgrdr.

    2. Eer bir web sitesi herkesi izlemek iin erezleri ayarlamak istiyorsa.

      Bunu yasal olarak yapmak iin, web sitesi yeni gelenler iin bir tane alr pencere(modal) al ekran gsterir ve erezleri kabul etmelerini ister. Daha sonra web sitesi ierii grntlemesine izin verecek ekilde ayarlar. Ancak bu yeni ziyaretiler iin sinir bozucu olabilir. Hi kimse web sitesinin ierii yerine tklanmas zorunlu alr pencere grmekten holanmaz. Fakat GDPR mevzuat gerei bunu ak bir ekilde yapmas gerekir.

    GDPR mevzuat sadece erezlerle ilgili deildir, gizlilii ieren dier konularla da ilgili, ancak bu bizim konumuzun kapsammnn dnda.

    zet

    document.cookie erezlere erimemizi salar.

    • yazma ilemleri sadece atfta bulunduumuz erezleri dzenler.
    • isim/deer ifti ifrelenmi olmak zorundadr.
    • bir erez 4kb kadar olmaldr, site bana 20+ erez ayarlanabilir (taraycya bal).

    erez seenekleri:

    • path=/, varsaylan olarak geerli yoldur, erezi yalnzca bu yol zerinde grnr hale getirir.
    • domain=site.com, varsaylan olarak bir erez yalnzca geerli etki alannda grnr, etki alanna aka ayarlanrsa, erezi alt etki alanlarnda grnr hale getirir.
    • expires ya da max-age erezin son kullanma tarihini ayarlar, eer ayarlanmazsa tarayc kapatldnda erezler yok olur.
    • secure erezi HTTPS-only eklinde ayarlar(hassas verilere sahip erezler iin gevenlik salar).
    • samesite taraycnn site dndan gelen isteklerle erez gndermesini engeller, XSRF saldrlarn nlemeye yardmc olur.

    Ek olarak:

    • nc taraf erezleri tarayc tarafndan engellenebilir, rnein Safari varsaylan olarak engeller.
    • AB vatandalar iin bir izleme erezi ayarlarken, GDPR mevzuatna gre kullancdan izin istemek zorundasnz.
    Eitim haritas

    Yorumlar

    yorum yapmadan nce ltfen okuyun...
    • Eer gelitirme ile alakal bir neriniz var ise yorum yerine github konusu gnderiniz.
    • Eer makalede bir yeri anlamadysanz ltfen belirtiniz.
    • Koda birka satr eklemek iin <code> kullannz, birka satr eklemek iin ise <pre> kullann. Eer 10 satrdan fazla kod ekleyecekseniz plnkr kullanabilirsiniz)

    Web Proxy Viewer  |  New URL  |  Original Page