Etiket arşivi: html

XSS Nedir?

Cross Site Scripting kelimelerinin kısaltmasıyla oluşan ve önlem alınmadığında korkulu rüya olabilecek bir tehlike. Çapraz siteler arasında script çalıştırma, kullanıcı bilgilerini ele geçirme gibi bir çok riske sebep olan bir yöntem. Hackerlarınsa en sevdiği yöntemlerden bir tanesi. Peki işin temeli nedir, nasıl çalışır önce kısaca ona bakalım.

XSS Nasıl Çalışır?

Gün içerisinde bir çok siteyi ziyaret ediyoruz ve oturumlarımız hep açık. Google, Facebook, Twitter, Borsa Ekranları ve bazen banka ekranlarımız gün boyu ya da günün bazı zamanlarında açık ve online. Bu da demek oluyor ki Sekme açık olmasa bile oturumlarımız aslında açık. Bankaların oturum süre kısıtlaması birazdan mantıklı gelmeye başlayacak. Açık olan bu oturumlarımıza; kötü niyetli bir hacker ya da kullanıcı, ziyaret ettiğimiz farklı bir siteler aracılığıyla erişim sağlayabilir. Dilediği işlemi yapabilir. Örneğin Facebook üzerinden bir sayfayı haberiniz olmadan size beğendirebilir ya da banka hesabınızdan haberiniz olmadan işlem yapabilir. Bu bazen korsan siteler üzerinden olabilirken eğer önlem alınmamışsa çok sık ziyaret edilen bir site üzerinden de yapılabilir. Bugün bilinen ve güvendiğimiz bir çok web sitesi üzerinden kötü niyetli kullanıcıların benzer saldırıları gerçekleşti. Elbette siteler kullanıcılarının güvenliği için her geçen gün daha çok önlem almaya devam ediyor. Bu durum aslında hackerlarla geliştiriciler arasında bitmeyen bir savaşa benziyor.

XSS’e Nasıl Önlem Alınabilir?

Önlem almak için kullanıcıların verilerinin kaydedildiği ve özellikler tüm kullanıcılara sunulduğu noktalarda veriyi süzmek gerekir. Php‘de bunun için htmlspecialchars() fonksiyonu bulunmakta. Bu fonksiyon aracılığıyla html tagları, kullanıcı tarafında çalıştırılamayacak hale getirilir. Ancak bu kesin çözüm değildir. Kötü niyetli kullanıcılar farklı teknikler geliştirerek bu fonksiyonun etrafından dolanmayı başarabilmektedir. jsfuck.com’daki örnek gibi farklı karakterlerle javascript betikleri yazmak mümkün olabiliyor. Elbette güncel tarayıcılar bu tarz açıklar için önlem alıyor ancak her kullanıcı güncel olamayabiliyor. O nedenle template sistemi kullanmak önemli. Bir çok geliştirici tarafından geliştirilen ve topluluk tarafından farklı testlere tabi tutulan sistemlerle daha güvenli kalmam mümkün olabilir. Özellikle Frameworklerin sundukları template sistemleri tercih edilebilir. Laravel Blade vs gibi.

Kapanış

Yazıyı yazarken aklıma tarayıcıların sekme özelliğini sundukları dönemler aklıma geldi. Bu dönemler aslında XSS açıklarının ayyuka çıktığı dönemlerdi. Büyük siteler büyük açıklarla karşı karşıya kalmışlardı ve önlem almaları zor olmuştu. O karanlık dönemler geride kaldı ancak %100 güvenlik diye bir şey yok. Her zaman tetikte olmakta fayda var. Her zaman söylendiği gibi, %100 güvenlik istiyorsanız sunucuyu kapatıp uyuyabilirsiniz 🙂 Yorumlarınızı bekliyorum.

jQuery UI Nedir?

jQuery UI(User Interface-Kullanıcı Arayüzü) jQuery üzerine kurulmuş bir javascript kütüphanesidir. İsminden de anlaşılacağı gibi tasarım ağırlıklı bir kütüphanedir. Html elemanlarına efekt ve işlesellik katmak için kullanılır. En çok kullanılan fonksiyonları : sürükle-bırak, yeniden ölçülendirme, takvim, progressbar, slider, menü, açılan pencereler ve daha fazlasıdır. Statik ve durgun html tasarımlarından sıyrılıp, sayfalara hareket getirmek ve canlandırmak için birebir kütüphanedir. jQuery’de olduğu gibi jquery-ui’de de az kod – çok iş mantığı vardır.

jQuery UI kütüphanesine ve ilgili dökümanlara bu adresten ulaşabilirsiniz.

Html5 Nedir?

Html5, html işaretleme dilinin son ve güncel sürümüdür(2013). Bu sürümün en büyük özelliği; video, audio ve canvas etiketlerinin eklenmesidir. Bu etiketler sayesinde video ve ses oynatmak için kullanılan flash uygulamalarının hakimiyeti kırılmış oldu. Steve Jobs’ın Flash uygulamalarının aşırı batarya tüketimi gerçekleştirdiği gerekçesiyle Iphone ve Ipadlerde desteklenmeyeceğini açıklaması, ardından da Adobe firmasının artık mobil cihazlar için flash player’ı desteklemeyeceklerini açıklaması Html5’in yaygınlaşmasına en büyük katkıyı yaptı. Canvas etiketinin javascript yardımıyla flash animasyonlarının yerini alacak kapasiteye sahip olsa da henüz bu hakimiyeti yıkabilmiş değil. Adobe Edge Animate CC’nin geliştirilmesi ve yaygınlaşması ile bu hakimiyetin de yıkılacağını düşünmekteyim.

Şu an tarayıcılar Html5 desteği sağlasalar da bu oran %100 değil ve bazı küçük farklılılar gösterebiliyor. Örneğin audio etiketinde Chrome mp3 oynatabilirken, Firefox ogg formatını desteklemekte. Umarız zamanla farklılıklar en aza indirgenir ya da tamamen ortadan kalkar.

Html5 ile gelen bir özellik de, javascript’den az da olsa rol çaldığı. Benzer bir durumun css için de olduğunu okumuştum.

Html5 sayesinde bir çok uygulama için artık harici uygulamalar kullanma zorunluluğu ortadan kalktı. Tasarım kısmından pek bahsetmedik ancak html5 ile gelen yeni etiketler sayesinde tasarım yönüyle de daha güçlü olduğunu söylemek gerek.

Html Nedir?

Html; Hyper Text Markup Language(Zengin Metin İşaretleme Dili) kelimelerinin baş harflerinin birleşiminden oluşmaktadır. İlk kez 1980 Yılında Cern laboratuvarlarında kullanılmıştır. Cern’de çalışan Tim Berners-Lee tarafından geliştirilmiştir. Html’e bir programlama ya da scipt dili demek doğru olmaz. Çünkü Html bir işaretleme dilidir ve içerisinde programlama dillerinden izler taşımamaktadır. Günümüzde(2013) son versiyonu olan Html5 kullanımlaktadır.

Ziyaret ettiğimiz siteler html kodlarından oluşmaktadır ve bu kodlar, tarayıcılar tarafından yorumlanır. Php ve JavaScript gibi diller html kodlarını üretmek ve düzenleme yapmak üzerine kurulmuştur. Basit olarak html iskeleti aşağıdaki gibidir.

<html>
    <head>
    <!-- kodlar -->
    </head>
    
    <body>
    <!-- kodlar -->
    </body>
</html>

Head(baş) kısmında ağırlıklı olarak metatag tanımlamaları,css ve javascript kodları bulunurken, body(gövde) kısmında ağırlıklı olarak html kodları bulunmakta. Css ve javascript body kısmında da bulunabilir ancak kod standardı açısından pek önerilmez.