Web Uygulamaları Mimarileri ve Güvenliği



Benzer belgeler
Web Uygulama Anaçatıları. Tahir Emre KALAYCI. May 5, 2009

Mobil Cihazlardan Web Servis Sunumu

MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

.com. Özcan Acar 2009 Kurumsal Java.com

Client Server Database

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Epay, Turkcell MobilÖdeme Altyaps

Python Web 2.0 Python ve Web 2.0 Son. Python ve Web 2.0. Gökmen GÖKSEL, 3 Mayıs 2007

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

Android e Giriş. Öğr.Gör. Utku SOBUTAY

PHP CodeIgniter MVC Framework

Web 2.0 Örnek Eğitim Notu

Özgür Yazılım, İş ve Kariyer Modelleri. Mahir B. Aşut EkoPC Kurucu Ortağı ve Yöneticisi, LKD Üyesi

15 Ekim 2010 Özgür Web Günleri Yeditepe Üniversitesi. Erlang Web Çatıları

GNU/Linux ve Özgür Yazılım. Mahir B. Aşut EkoPC Kurucu Ortağı ve Yöneticisi, LKD Üyesi

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

FINDIK Herkese Açık Filtre

Algorithm of Your Life. AJAX ve...

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

Web Uygulama Güvenliği Kontrol Listesi 2010

AKILLI TATIL PLANLAMA SISTEMI

ÖZGÜR YAZILIMLAR İLE J2EE

İZMİR KÂTİP ÇELEBİ ÜNİVERSİTESİ SÖZLEŞMELİ BİLİŞİM PERSONELİ SINAVINA BAŞVURACAKLAR İÇİN DUYURU


PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

Sunucu Taraflı JavaScript ile Gerçek Zamanlı Web Uygulamaları Geliştirme

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

solid; BORDER-LEFT: #1F9FFF 0px solid; BORDER-RIGHT: #1F9FFF 0px solid; BORDER-TOP: #1F9FFF 0px solid; COLOR: #1F9FFF; FONT-FAMILY: Trebuschet MS;

TÜRKSAT UYDU HABERLEŞME KABLO TV VE İŞLETME A.Ş. İŞÇİ STATÜSÜNDE PERSONEL ALIM İLANI (Bilişim Hizmetleri)

Mobil Cihazlardan Web Servis Sunumu Özlem Özgöbek 1, R. Cenk Erdur 2 1,2

Java EE 5 Teknolojileri Jboss Seam

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

Büyük Kurumlarda Özgür Yazılım Kullanımına Giriş

Mobil Cihazlardan Web Servis Sunumu

Spring Framework Eğitimi

PHP ile İnternet Programlama

1.PROGRAMLAMAYA GİRİŞ

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Sunum Planı. Django Nedir? Django projesi oluşturmak Basit bir blog uygulaması. Şablon Kullanımı Diğer özellikleri

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

1 Milyon Kullanıcıya Nasıl Hizmet Veriyoruz? CloudLMS Teknik Alt Yapı ve Mimarimiz

PostgreSQL Veritabanı Sunucusu Devrim GÜNDÜZ.

Üst Düzey Programlama

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Güvenlik Java ve Web Uygulama Güvenliği

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

Symfony Doctrine. Symfony-Doctrine. Deniz Bahadr GÜR, Mehmet Onur YALAZI. Özgür Web Teknolojileri Günleri, 2010

Üst Düzey Programlama

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design

PHP 1. Hafta 1. Sunum

One ASP.NET. 5 bileşen barındırmaktadır. Web Forms Model View Controller (MVC) Web Pages Web API SignalR

Basit bir web uygulaması

EMRE CAMADAN KİŞİSEL BİLGİLER EĞİTİM. E-Posta: Cep:

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı

Sürücü Belgesi B. Firma Sektörü Bilişim. Bitiş Tarihi Hala çalışıyorum. Firma Sektörü Bilişim. Bitiş Tarihi

TeamBase5 BELEDİYE İLETİŞİM MERKEZİ SIEMENS

TradeSurf aracı kurum ve bankalar için geliştirilmiş, farklı kullanım ihtiyaçlarına yanıt verebilen bir gerçek zamanlı işlem platformudur

<Insert Picture Here> Primavera P6 Enterprise PPM

08217 Internet Programcılığı II

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

İnternet Programcılığı Öğr. Gör. Serkan AKSU Statik ve Dinamik Web Siteleri. Dinamik Web Sitesi Nedir?

MVP ve Mediator ile Loose Coupled, Modüler UI Geliştirme

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

Web Programlama Kursu

Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlar!

EMRE CAMADAN. E-Posta: Cep: KİŞİSEL BİLGİLER. Doğum Tarihi: 28 Haziran 1989 Sürücü Belgesi: B Sınıfı / 2008 EĞİTİM

9/21/2016

Bölüm 10: PHP ile Veritabanı Uygulamaları

Zope Uygulama Sunucusu

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim

Internet Programming II

1 / 5. Mehmet Alper Şen. Kıdemli Yazılım Uzmanı. İletişim Bilgileri

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Sunucularımızı Gözleyelim. Oğuz oguzyarimtepe ~ gmail.com

Mobil Uygulama Geliştirme Yaklaşımları, Web Tabanlı Mobil Uygulama Çatıları. Burak USGURLU

Swing ve JDBC ile Database Erişimi

Veritabanı. Ders 2 VERİTABANI

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

Bilgi Servisleri (IS)

Html temelleri. Ders 4

Yılmaz Erdogan Yazılım Uzmanı

Veri Tabanı Yönetim Sistemleri Bölüm - 3

Farklı Mobil Platformlar Üzerinde Servis Tabanlı Mimari(SOA) Yaklaşımı: Elektronik Uçuş Çantası Vaka Çalışması

Ajax kullanımı oldukça yaygınlaşmaktadır. Web tabanlı uygulamalar Ajax desteği ile çok daha esnek kullanışlı, performanslı bir yapıya kavuşmaktadır.

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

Eczane İlaç Satış Onay Bildirimi Web Servislerinin Kullanım Kılavuzu

Workcube dünyasında kariyeriniz nasıl ilerler?

Programlama Dilleri sıralaması Programlama Dilleri sıralaması 2016

LOGO İş Zekası çözümü ile kurumsal raporlama ve analizler. Cem Yılmaz Genel Müdür LOGOBI Yazılım

DITA ile Uygulama Belgeleri Hazırlamak

Büyük Veri de Türkiye den Uygulama Örnekleri Dr. Güven Fidan

Transkript:

Web Uygulamaları Mimarileri ve Güvenliği METU CCLUB erbil Karaman

başlıklar... Web uygulama mimarileri Uygulama geliştirme ve framework kullanımı Güvenli web uygulamaları için öneriler

baslamadan önce... Mimari neden önemli? Google'in başarısı nerede gizli? Webde güvenlik nedir?

ana parametreler... Güvenlik Ölçeklenebilirlik Süreklilik Kodun Yönetilebilirliği

1. bodos mimari... Genellikle fazla heyecanlı gençler tarafından tercih edilen mimaridir(!) Görsellik, mantık ve veri iç içedir Genellikle tüm sistem tek bir fiziksel makinededir Webin %90lık kısmını oluşturur Genellikle onlarca potansiyel güvenlik açığı barındırır En hızlı başlangıç gibi gözükse de uzun vadede en çok acı çektirendir

İstemci ( www.benimsitem.com ) İÇERİK HTTP GET SAYFA Arayüz+Mantık +Veri

index.php <html> <head> <title>haberler</title> </head> <body> <?php if($_session['kullanici'] == 'admin'){?> <h1>yeni Haber Ekle</h1> <form action="haber_ekle.php" method="post"> <p> Başlık: <input type="text" name="baslik" value=""><br> Haber içeriği: <input type="textarea" name="icerik" value=""><br> <input type="submit" name="gonder" value="haber Ekle"><br> </p> </form> <? } else if ($_SESSION['kullanici'] == 'guest') {?> HTML biseyler <? }?> </body> </html>

ana parametrelerin değerlendirilmesi Güvenli Değil Ölçeklenemez (Sıkışık Mimari) Üretimi zahmetli ve sürekliliğe uygun değil

Three-Tier User Interface Statik İçerik kullanıcı Yorumlayıcı / Üretici Mantık VeriTabanı Veri Yönetici (DBI)

Three-Tier

Three-Tier Katmanlar genellikle ayrı fiziksel makinelerde Uygulaması en basit (lineer) ve en çok tecih edilen dağıtık mimari Kullanıcı sadece arayüz katmanı ile etkileşimde. Katmanlar birbirine bağımlı değil, birindeki hata diğerini etkilemiyor. Kolay yönetilebilir ve sürekliliğe uygun En hızlı genişletilebilir mimari Genellikle tek bir iş için özelleşmiş yapı, doğal olarak en iyi performansı sunuyor

MVC(Model-View-Controller) Controller (PHP,Java,Python, Ruby,Perl,.NET, ColdFusion, Flex) callback listener View (HTML, Flash) observer Model (DB ya da XML)

View Kullanıcının hareketlerinden ve görsel içerikten sorumludur. Kullanıcının hareketlerini Model katmanına haber verir. (Event handler callback) Modelden aldığı veriyi kullanarak arayüzü oluşturur.

Controller View katmanından event(callback) bekler, bu nedenle katmana direkt bağlıdır. Her event için ne yapacağı önceden tanımlanmıştır, event ile gelen veriyi alır, işler, sonucunu modele iletir.

Model Controllerdan gelen mesaja göre Model sahip olduğu veriyi gözden geçirip gerekli bilgiyi üretir / düzenler. Genellikle bir observer viewa değişiklikleri haber verir.

MVC Yeni nesil web uygulamalarına (Web2.0- Web3.0) en uygun mimaridir. View genellikle güncel veri barındırır. Güvenlidir çünkü kullanıcı taraflı etkileşimi minimalize eder. Katmanlar genellikle tek bir Framework içerisinde yer alır. Geliştirilmesi ve alışması zor olsa da en kullanışlı yapıyı sunar. Dağıtılabilir yapıya uyarlanması Three- Tiere göre daha zahmetlidir.

Yaygın MVC frameworkleri: PHP için: Zend Framework Symfony Python için: Django Perl için: Catalyst Ruby için: Ruby on Rails Java için: Spring Framework Struts.NET için: MonoRail The Spring.NET

SOA (Service Oriented Architecture)

SOA ve Web Hizmetleri (Web Services) En komplex yapıdır. Uygulamalar genellikle servislerin yetenekleriyle (API kapsamı ile) sınırlıdır. Alıştığımız protokoller enkapsüle edilmiştir. (HTTP GET,POST vs. yoktur) Bütün veri XML(SOAP) olarak servis edilir ve WSDL olarak sunulur.

SOA Servis sağlayıcı için en güvenli yapıdır. Yapı itibari ile dağıtıktır (ölçeklenebilir), her türlü alt/üst sisteme entegre edilebilir. Sürekliliği ve mantık katmanını büyük ölçüde servis sağlayıcıya bırakır. Geliştirici için uygulamayı tek katmana indirger. Servis ve uygulama katmanı genellikle farklı lokasyonlardadır. Ör: Yahoo Web Services

Web Uygulaması Frameworkleri ve Kütüphaneler TEKERLİĞİ YENİDEN İCAT ETMEYİN!!!

Web Uygulaması Frameworkleri ve Kütüphaneler Kararlı çalışan web uygulaması geliştirmek tecrübe ve zaman ister. Yaptığınız işlerin çoğu daha önce başkaları tarafından da onlarca kez yapılmıştır ve test edilmiştir. O halde ne diye yeniden yapasınız. Yaygın kullanılan frameworkler sık sık güncellenir ve yenilenir. Size zaman ve hız kazandırır. Kodunuz yalnızca 'yapmak istediğiniz şeyi' içerir. Uygulama katmanlarını birbirinden bağımsız kılar.

Web Uygulaması Frameworkleri ve Kütüphaneler Kullanıcı yetkilendirmesi (auth bypass), session yönetimi (XSS), veri tabanı etkileşimi (SQL injection), uygulama güvenliği açısından en kritik noktalardır. Yeterli tecrübeniz yok ise hata yapmanız (açık bırakmanız) an meselesidir.

Web Uygulaması Frameworkleri ve Kütüphaneler PHP için: PEAR (PHP Extension and Application Repository) http://pear.php.net/ (DB(MDB2), HTML_QuickForm, Auth) Perl için: CPAN kütüphaneleri AJAX için: GoogleWebToolkit(Java) Dojo Toolkit Apache XAP CleanAJAX