Cloud hosting nedir?

Geleneksel hosting işinde hosting firması müşterisine bir sunucu kiralar. Bu sunucuda koşacak olan işletim sistemi, uygulama sunucusu ve veritabanı sunucusu müşteri tarafından kurulur. Bütün güvenlik prosedürlerinin uygulanması müşterinin sorumluluğundadır. Ziyaretçi sayısı arttığında clustering yapmak müşterinin sorumluluğundadır. İşletim sistemini, uygulama sunucusunu ve veritabanı sunucusunu güncellemek müşterinin sorumluluğundadır.

Cloud hosting işinde ise müşterinin tek sorumluluğu kendi uygulamasını kodlamaktır. Bunun dışında müşteriye başka bir sorumluluk bırakılmaz. Uygulamasının hangi sunucu üzerinde çalışacağını, hangi SQL veritabanını kullanacağını, işletim sisteminin ne olacağını müşteri bilmez. Müşteri hosting firmasına yalnızca war (ROOT.war) dosyasını emanet eder. Güncelleme ve cluster işlemleri tamamen otomatize edilmiştir.

Cloud servislerinde varsayılan Java kütüphaneleri değiştirilmiş ve bazı özelliklere erişim kısıtlanmıştır. Örneğin dosya sistemi ve socket işlemlerine izin verilmez veya kısıtlı erişim sağlanır (yalnızca kendi uygulamasının bulunduğu dizine erişim gibi). Yazılımcı klasik Java Logging API‘sini kullanır fakat arka planda loglar dosya sistemi yerine merkezi log sunucularına iletilir. Müşterinin kendi loglarına web üzerinden erişimi sağlanır. Cron benzeri job queue API’si sağlanır. Resim ve video gibi SQL veritabanına yazmanın uygun olmayacağı veriler (blob) için özel servisler sağlanır. SQL veritabanına alternatif olarak NoSQL ve key/value store servisleri sağlanır.

Ben Java web uygulamaları için özelleştirilmiş cloud servisinin resmini çıkardım. Bu cloud servislerinin Java’ya veya web uygulamalarına has olduğu anlamına gelmez. C ile geliştirilmiş uygulama çalıştırmak için özelleştirilmiş cloud servisi de olabilir. Nasıl olacağını okuyucunun hayal gücüne bırakıyorum.

Notlar

Her zaman bazı istisnai durumlar olabilir. Örneğin aşırı titiz bir müşteri için dedike servis sağlanabilir. Böyle bir müşteriye uygulamasının diğer müşterilerden ayrı bir ortamda çalışacağı garanti edilirken, diğer müşterilerin kullanamadığı servisler sağlanmaz.

Cloud hosting sağlayıcıları

http://en.wikipedia.org/wiki/Category:Cloud_platforms

Reklam

Reported by Mustafa ULU

Mart 2008’de rapor ettiğim bu güvenlik açığı Ekim 2009’da giderildi.

SA-CONTRIB-2009-081 – Abuse – Cross Site Scripting

The Abuse module enables users to flag nodes and comments as offensive, bringing them to the attention of the site maintainer for review. The module suffers from a Cross Site Scripting (Cross Site Scripting) vulnerability. Such an attack may lead to a malicious user gaining full administrative access.

O zaman gönderdiğim e-posta

Abuse module displays flagged nodes in a moderation queue without applying filters (without calling node_view) on them.

Module version: abuse 5.x-1.x-dev at (http://drupal.org/node/123349)

Steps to reproduce:

  • Install abuse.module.
  • Enable flagging of any content type at “admin/settings/abuse” page.
  • Flag a node by using “Flag as offensive” link on “node/#nid” page.
  • Go to “admin/content/abuse” page. Under any tab one can see unfiltered node contents.

Java Day 2009’dan haber veren yok mu?

Bugün bunu yaptım ama şunu yapmayı unuttum tarzı yazılarla dolu olan blogküre gerçekten blog yazarlığından habersiz görünüyor.

Sun Microsystems 25 Haziran günü İstanbul’da Java Day 2009 organizasyonunu düzenledi. Blog yazarlarımız bu etkinliği günler öncesinden haber verdiler fakat kendileri etkinliğe katılmayı unuttular. Yukarıda alıntıladığım, Bildirgeç’te yayımlanan şu yazının giriş cümlesinin ne kadar doğru olduğunu bir kere daha anımsadım.

Blogküre‘de Java Day aramasında çıkan sonuçlardan sadece ikisi etkinlik sonrasında yazılmış. Onlar da blog değil portal tarzı sitelerden geliyor. Bir tanesi kaliteli içeriğe sahip. 3 tane röportaj yayımlamışlar; [1], [2], [3].

Bir tane de FriendFeed canlı yayını bulabildim.

Drupal 7 kullanıcı parolalarını veritabanında nasıl tutuyor

Drupal 7 kullanıcı parolalarını saklamak için yeni bir yöntem kullanıyor. Bu yöntem önceki Drupal sürümlerine göre daha güvenli olan ve yazılımlar arası kullanıcı taşınabilirliği sağlayan phpass algoritmasına dayanıyor.

Artık aynı algoritmayı uygulayan Drupal, WordPress, bbPress, phpBB ve Gallery yazılımları arasında kullanıcı hesapları parola yenilemeye gerek kalmadan taşınabilecek.

phpass algoritmasının uygulaması Drupal dağıtımındaki password.inc dosyasından alıp aşağıya eklediğim 5 satır kod içerisinde kolaylıkla anlaşılabilir.


$hash = md5($salt . $password, TRUE);
do {
  $hash = md5($hash . $password, TRUE);
} while (--$count);
$output =  $setting . _password_base64_encode($hash, 16);

Uygulama bildiğimiz “parola” + “rastgele karakterler öbeği” yöntemini temel alıyor. Parola’ya önce rastgele karakterlerden oluşan bir kelime ekleniyor. Oluşan karakter dizisi bilinen algoritmalardan biriyle (MD5, SHA1) karmaşıklaştırılıyor (hash). Daha sonra bu işlem belirli bir miktar tekrarlanıyor. En sonunda ortaya çıkan karmaşıklaştırılmış ürüne ilk belirlenen rastgele karakterler ve işlemin tekrarlanma değeri ekleniyor. Böylece kullanılan rastgele karakterler ve tekrarlanma sayısının ileride tekrar kullanılabilmesi sağlanıyor. Bilgisayarların ileride daha hızlı olacağı ve bu yöntemi aşabileceği göz önünde bulundurularak tekrarlanma miktarının her yeni Drupal sürümünde arttırılması öngörülüyor.

WordPress.com hesabınız güvenli

WordPress.com günlüklerinin yönetim alanları SSL şifrelenmiş iletişim katmanı ile korunuyordu. 15 Aralık 2006 tarihli günlük girdisi ile bu özelliğin kaldırıldığı (!) duyurulmuştu. Bu özelliğin kalkmasından sonra umuma açık İnternet bağlantısı sunulan alanlarda WordPress.com hesabımıza giriş yapmayı bırakmıştık. Bilgi güvenliğimiz¹ için oldukça önemli olan bu özellik tamamen kaldırılmış mıydı?

Hayır, SSL katmanı WP.com’dan asla tamamen kaldırılmadı, sadece gizlendi. Eğer WP.com günlüğünüzün kullanıcı girişi sayfasına aşağıdaki gibi bir URL ile erişirseniz kullanıcı adınız ve şifreniz sanal ortamda şifrelenmiş olarak iletilecektir. (“https://” protokolüne dikkat edin.)

https://mustafaulu.wordpress.com/wp-login.php

Giriş yaptıktan sonra yönetim alanınıza da aşağıdakine benzer bir URL ile eriştiğinizde bütün yönetim faaliyetleriniz güvenli bir yöntemle iletilecektir. (“https://” protokolüne dikkat edin.)

https://mustafaulu.wordpress.com/wp-admin/

¹ İnternet’te dolaşırken bilgi güvenliğinizi önemsiyorsanız SSL kullanımına dikkat etmelisiniz. Kişisel bilgilerinizi girdiğiniz sayfalarda SSL etkinleştirilmiş olmalıdır. Aksi taktirde sizinle aynı bağlantıyı paylaşan herhangi birisi bilgilerinizi ele geçirebilir.

GoDaddy.com neden yanlış tercih?

GoDaddy.com’dan üç farklı hizmet alıyorum. Bunlar alan adı kaydı ve barındırılması, e-posta hizmeti ve paylaşımlı sunucu hizmeti. Alan adı işlemlerinde şu ana kadar ciddi bir sorun yaşamadım fakat diğer hizmetlerinde pek çok eksiklik farkettim.

Beni benden korumak anlamsız

GoDaddy.com paylaşımlı sunucu müşterilerine SSH desteği vermiyor. (Bkz http://blog.godaddyhosting.com/2008/12/02/ssh-access.aspx)

Paylaşımlı sunucu müşterilerine SSH desteği sunmamak ancak müşteriyi kendisinden korumak olarak algılanabilir. GoDaddy.com’un yapmak istediği de beni benden korumaktır.

Benim bilgilerimin güvenliği nerede?

Müşteriye ayrılan sunucu alanı tamamen ağdan erişilebilir (web accessible) durumda. (Bkz http://blog.godaddyhosting.com/2008/04/01/document-root.aspx)

Veritabanı şifrelerinin de bulunduğu ayar dosyaları Apache’nin erişemeyeceği bir dizinde tutulmalıdır. Bunun için genelde bir kullanıcıya ev dizini ve bu dizinin altında “public_html” gibi bir dizin ayrılır. Bu yapılanmada sadece “public_html” dizini Apache tarafından erişilebilir durumdadır. Önemli dosyaların bu dizinin dışında tutulması güvenliği arttıracaktır.

GoDaddy.com paylaşımlı sunucu yapılandırmasında ise sadece “public_html” dizini müşteriye sunulur. Önemli veya önemsiz bütün dosyalar bu dizin içerisinde barındırılır. Kısıtlı erişim haklarına sahip bir dizin sunmayarak kullanıcıların bilgi güvenliği tehlikeye atılıyor.

E-posta sunucularında uzaktan erişim (POP3, SMTP) desteği yok

Masaüstü programları (Thunderbird) kullanılarak GoDaddy.com’un sağladığı e-posta hesaplarına erişilemiyor.

Sonuç

Aldığım hizmetlerin süresi dolduğunda alan adları dışındakileri başka bir sağlayıcıya aktarmayı düşünüyorum. Şimdilik DreamHost’un hizmet kalitesinin oldukça yüksek olduğunu biliyorum. Eğer sizin bir öneriniz varsa duymak isterim.

İnternet sayfası tasarımında rahatsız edici tercihler

Takip ettiğim bu günlükte İnternet sayfası tasarlarken düşülen hatalarla ilgili bir yazı yazıldı.

Yazıda listelenen 10 maddeden ikisine (2. ve 10. maddelere) eklemek istediğim ayrıntılar vardı. Hemen fikirlerimi yazdım fakat yazdıklarım günlük sahibi tarafından kabul edilmedi.

Tamamen kendi görüşlerim olan bu listede yazanlara katılabilirsiniz veya kendi görüşlerinizi iletebilirsiniz, belkide bu sayede Türkiye’de web tasarımı yapan insanlara görüşleriniz ve önerilerinizle yardımcı olmuş olursunuz.

Yazarın bu cümlesini inandırıcı bulmuş¹ ² ve yorumumu yazdıktan sonra yazıyı Oyyla’ya bile göndermiştim.

İnternet günlüğü böyle yönetilmemeli. Hakaret içermeyen ve uygun üslupla yazılan misafir yorumları silinmemeli. Silinme ihtimalini göze alarak bir daha aynı sitedeki yazılara nasıl yorum yazabilirim ki?

Misafir yorumları hakkındaki fikrimden sonra ilgili yazıda geçen 2. ve 10. maddelere eklemek istediklerimi yazayım:

İkinci maddenin aslı: Siteye girişlerde kullanılan animasyonlu ön sayfalarda animasyonu geçmek için seçenek sunmamak.

Bence animasyonlu ön sayfa hazırlamak başlıca bir hata. Animasyon siteyi ilk defa ziyaret edenleri etkileyebilir fakat devamlı ziyaretçileri çileden çıkarır.

Onuncu maddenin aslı: Site içi bağlantıları yeni pencerelerde açmak.

Bana göre sadece site içi bağlantılar değil dış bağlantılar da aynı pencerede açılmalı. Yeni pencerede açma seçeneği sadece bazı özel durumlarda kullanılmalı. Örneğin; kullanıcının yapılan işin bitmesini beklemeden sayfayı terketmesi bilgi kaybına yol açacaksa o sayfadaki bağlantılar yeni pencerede açılır yapılabilir. Bu fikrimi destekleyen bir gerçek Digg‘deki dış bağlantıların aynı pencerede açılmasıdır.

Benim bu konudaki görüşlerim bunlar. Sizin de bu liste hakkında tartışmak istediğiniz şeyler varsa lütfen benim yazıma değil başta bağlantısını verdiğim yazıya yorum gönderin.

¹ Aslında durum farklı olabilir. Yazdığım yorum sadece spam filtresine takılmış olabilir. Yazarın bundan haberi bile olmayabilir. Eğer araya spam filtresi girmiş ise yazarın inandırıcılığı zarar görmemiş olur. Ben de verdiğim rahatsızlıktan dolayı özür dilerim.

²  Açıklama için aşağıdaki ilk yorumu okuyun.