Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation OWASP-TR Saldırı Savunma Bedirhan URGUN Web Güvenlik Topluluğu Tübitak – UEKAE Dili: Javascript Web 2.0
OWASP Türkiye İçerik Amaç Motivasyon Javascript Temelleri Javascript ve İki Sıradışı Özelliği Javascript ile Saldırı Tespit - Demo Sonuç
OWASP Türkiye Amaç Javascript ile Web 2.0 güvenliği farkındalığı
OWASP Türkiye Motivasyon
OWASP Türkiye Motivasyon devam Javascript Malware (kötücül yazılım) Bilgi hırsızlığı Oturum korsanlığı Clipboard çalma Tuş yakalama Ekran çalma İçerik değişikliği (tahrifat)
OWASP Türkiye Geçmiş Tarama Motivasyon
OWASP Türkiye Port Tarama Motivasyon
OWASP Türkiye Dahili IP Çalma Motivasyon
OWASP Türkiye Web Spidering Motivasyon
OWASP Türkiye XSS Bot(net) Motivasyon
OWASP Türkiye Açıklık Tarama Motivasyon
OWASP Türkiye Web Solucanı Motivasyon
OWASP Türkiye Javascript Temelleri 1995 Netscape, Brendan Eich 1996 Microsoft, JScript 1997 ECMA-262, ECMAScript Lehçeler; Mozilla Firefox, Spider Monkey, Rhino IE, Opera, Konqueror, Safari .NET Framework Adobe: Flash, Flex, Acrobat
OWASP Türkiye Javascript Temelleri devam Dinamik Prototip tabanlı Zayıf yapısal (loose typing) Statik kapsamlı (lexical scoping) Birinci sınıf nesneler olarak fonksiyonlar Açık kod dağıtımı (source code delivery)
OWASP Türkiye Global ve lokal değişkenler tat = “tuzsuz”; function tuzkoy(){ tat = “tuzlu”; } tuzkoy() alert(tat); Komut sonu karakteri ; veya yeni satır Büyük küçük harf hassasiyeti Javascript Temelleri devam var
OWASP Türkiye Javascript Temelleri devam Veri tipleri Number Boolean String null undefined ve diğer herşey Object
OWASP Türkiye Javascript ve Farklı Özellikleri Programlama Dilleri – 3xx Buyurucu (Imperative) programlama komutlarla durumun değişmesi örn: for(var i=0; i < myarray.length; i++) square( myarray[i] ) Bildirimsel (Declarative) programlama fonksiyonların uygulanması örn: myarray.map( square, null )
OWASP Türkiye Javascript ve Farklı Özellikleri Bildirimsel programlamanın 2 temeli Lambda (birinci sınıf nesneler : fonksiyonlar) var ikiEkle = function (x) { return x + 2; } ikiEkle(3); // sonuç 5 Bir kez oluştur ve bir kez çalıştır
OWASP Türkiye Javascript ve Farklı Özellikleri Bildirimsel programlamanın 2 temeli devam Closure (Kuşatma) function birEkle (y) { return function() { return y + 1; }; } var x = birEkle(5); x(); // sonuç 6
OWASP Türkiye DEMO Depolanmış XSS Javascript ile Saldırı Tespit Stratejisi Atlatma Daha İyi Saldırı Tespit Stratejisi DEMO SUNUMDA DEĞİL
OWASP Türkiye Depolanmış XSS
OWASP Türkiye Sonuç Javascript Web 2.0 güvenliği için temel, Web 2.0 uygulama geliştirilmesi için temel, Göründüğünden daha karmaşık ve güçlü, Her açıdan incelenmeye değer bir dil
OWASP Türkiye Kaynaklar Yahoo! UI Library: YUI Theater Douglas Crockford Javascript: The Definitive Guide David Flanagan