Bu makale’de HTTP cookie’leri tanıtarak bazı basit kullanım alanlarından bahsedeceğim.
Bilindiği gibi HTTP stateless bir protokoldür. HTTP protokolü, web istemciyi ve sunucuyu sonraki istekler ve cevaplarda kullanılmak üzere protokol seviyesinde bir state (durum bilgisi) tutmasını şart koşmaz. Bununla birlikte web uygulamalarında durumu bilgisini tutmaya ihtiyacınız vardır. Örnek olarak, kullanıcı uygulamaya parolası ile giriş yaptıktan sonra ziyaret ettiği diğer sayfalarda kullanıcıya tekrar tekrar kullanıcı adı ve parolasını sormak istemeyiz. Kullanıcının önceden uygulamaya giriş yaptığını bilerek onu tanımamız gerekir.
HTTP cookie’lerin bir kullanım amacı yukarıda belirtilen ihtiyacı session karşılamaktır. Web sunucu, kendisi ile iletişim kuran tarayıcılara onları birbirinden ayırmak için birer açar. Sunucu, kendi tarafında tuttuğu Session Id bilgisini aynı tarayıcının diğer isteklerinde de ayırt edebilmek için şifreleyerek tarayıcıya vereceği HTTP cevabın Cookie bölümüne ekler. Tarayıcı bu cookie'yi alır ve web sunucuya göndereceği bütün isteklerde HTTP header'larına ekler. Böylece sunucu gelen istekteki cookie'yi deşifre ederek session bilgisini edinmiş olur.
Yukarıda anlatılan cookie’lere Session Cookie denir.
Sunucu bu flag'i kullanarak tarayıcıya ilgili cookie'ye JavaScript tarafından erişime izin verilmemesini salık vermektedir. Bu flag ile cookie'nin XSS yoluyla çalınmasının önüne geçilir. XSS (Cross-site Scripting) ile web uygulamasındaki bazı zafiyetler nedeniyle kötü amaçlı kişiler tarayıcı üzerinde kendi JavaScript kodlarını çalıştırabilirler. httponly ile
JavaScript'in ilgili cookie'yi okuması engellenir ve Session Cookie, XSS atağından korunmuş olur.
Anlaşılacağı üzere Session Cookie'ler kullanıcının güvenle saklaması gereken bilgilerdir. Bu bilgiyi eline geçiren kötü amaçlı kişi, session'a erişim sağlayarak uygulama üzerinde Session Cookie'nin gerçek sahibi gibi hareket edebilir. Buna Session Hijacking adı verilir.
Hep Session cookilerden bahsettik tek bunlar değil ya Bunların aksine kullanıcı bilgisayarında uzun süre kaydedilen cookie'ler de vardır ve bunlara Persistent Cookie denir.
Bir siteye giriş yaparken Beni Hatırla kutucuğunu işaretlendiğinde web sunucunun verdiği cevapta Session Cookie yerine Persistent Cookie bulunur.Bu biraz açıklayıcı olmadıysa özür dilerim yeni bir makalede görüşmek üzere kendinize iyi bakın
https://www.turkhackteam.org/?_pwa=1 ailesi SAYGILARLA M15
Bilindiği gibi HTTP stateless bir protokoldür. HTTP protokolü, web istemciyi ve sunucuyu sonraki istekler ve cevaplarda kullanılmak üzere protokol seviyesinde bir state (durum bilgisi) tutmasını şart koşmaz. Bununla birlikte web uygulamalarında durumu bilgisini tutmaya ihtiyacınız vardır. Örnek olarak, kullanıcı uygulamaya parolası ile giriş yaptıktan sonra ziyaret ettiği diğer sayfalarda kullanıcıya tekrar tekrar kullanıcı adı ve parolasını sormak istemeyiz. Kullanıcının önceden uygulamaya giriş yaptığını bilerek onu tanımamız gerekir.
HTTP cookie’lerin bir kullanım amacı yukarıda belirtilen ihtiyacı session karşılamaktır. Web sunucu, kendisi ile iletişim kuran tarayıcılara onları birbirinden ayırmak için birer açar. Sunucu, kendi tarafında tuttuğu Session Id bilgisini aynı tarayıcının diğer isteklerinde de ayırt edebilmek için şifreleyerek tarayıcıya vereceği HTTP cevabın Cookie bölümüne ekler. Tarayıcı bu cookie'yi alır ve web sunucuya göndereceği bütün isteklerde HTTP header'larına ekler. Böylece sunucu gelen istekteki cookie'yi deşifre ederek session bilgisini edinmiş olur.
Yukarıda anlatılan cookie’lere Session Cookie denir.
Sunucu bu flag'i kullanarak tarayıcıya ilgili cookie'ye JavaScript tarafından erişime izin verilmemesini salık vermektedir. Bu flag ile cookie'nin XSS yoluyla çalınmasının önüne geçilir. XSS (Cross-site Scripting) ile web uygulamasındaki bazı zafiyetler nedeniyle kötü amaçlı kişiler tarayıcı üzerinde kendi JavaScript kodlarını çalıştırabilirler. httponly ile
JavaScript'in ilgili cookie'yi okuması engellenir ve Session Cookie, XSS atağından korunmuş olur.
Anlaşılacağı üzere Session Cookie'ler kullanıcının güvenle saklaması gereken bilgilerdir. Bu bilgiyi eline geçiren kötü amaçlı kişi, session'a erişim sağlayarak uygulama üzerinde Session Cookie'nin gerçek sahibi gibi hareket edebilir. Buna Session Hijacking adı verilir.
Hep Session cookilerden bahsettik tek bunlar değil ya Bunların aksine kullanıcı bilgisayarında uzun süre kaydedilen cookie'ler de vardır ve bunlara Persistent Cookie denir.
Bir siteye giriş yaparken Beni Hatırla kutucuğunu işaretlendiğinde web sunucunun verdiği cevapta Session Cookie yerine Persistent Cookie bulunur.Bu biraz açıklayıcı olmadıysa özür dilerim yeni bir makalede görüşmek üzere kendinize iyi bakın
https://www.turkhackteam.org/?_pwa=1 ailesi SAYGILARLA M15