12 Eylül 2007 Çarşamba

tdk forumundan (tartışma topluluğundan) :)

dilimizi mahvedenler başlıklı entryden

" böyle bir başlık attım ;ama belki ben de bunların içindeyimtelivizyonlar siyasetçiler sokaklar bu işte sorumlulu ellelrinde tutuyor hele şu pop ve top dünyasının şahısları Türkçe diye bir şeyden haberleri yok on lar Tarzanca konuşuyorlar konuşmayada devam edecekler şarkılara bakıyoruz anlatım bozukluklarıyla dolu "

noktasına dokunmadım diyeceğim ama zaten nokta virgül hak getire

11 Eylül 2007 Salı

Sanal pos nedir ?

Elektronik ticaretin anahtarlarından biri de "sanal POS" denilen sistemlerdir. Web üzerinden ödeme söz konusu olduğunda sanal POS´lar devreye girer. Klasik alışverişlerde kullandığımız POS (Point of sale- ödeme noktası) cihaz ve sistemlerinin, web siteleri üzerinden alışveriş yapmaya olanak sağlayan şekline sanal POS -VPOS (Virtual point of sale) denmektedir. Kısaca buna Internet´e uyarlanmış POS da diyebiliriz.

Sanal POS ile alıcı-satıcı ya da satıcı-tedarikçi arasında online bir ödeme sistemi ve altyapısı kurulmuş olur. Sistem basit olarak, firmanın web sitesi üzerinden bilgilerini giren alıcının banka ve kredi kuruluşlarında olan hesabından, aldığı ürün veya hizmetin bedeli olan paranın firmanın kendi banka hesabına geçmesine dayanır.

Bu sistemi uygulamak son derece kolay ve zahmetsizdir. Ürün ve hizmetlerini web üzerinden pazarlamayı düşünen bir firma öncelikle ticari hesabının bulunduğu bir banka ile üye işyeri ve e-ticaret sözleşmelerini imzalaması, devamında da bankaya ait VPOS yazılımını kendi web sitesine kurması yeterlidir.

Sanal POS işleyiş olarak oldukça güvenlidir, tüm işlemler Bu süreç esnasında, dijital olarak gerçekleştirilir. Güvenlik sistemleri SSL 128 bit´lik şifreleme algoritmasına dayanan dijital imza ve dijital sertifikalı giriş-çıkış işlemlerini çözmek çok zordur, bu nedenle klasik bir alışverişte yaşayacağınız güvenlik tehlikesi (Hele hele günümüzde) kat be kat daha fazladır.

Ülkemizde sanal POS hizmeti veren başlıca bankaların sanal POS´larını şöyle sıralayabiliriz. Sanal Akpos (Akbank), VPOS-724 (Vakıfbank), POSNET (Yapı Kredi Bankası), Garanti Sanal POS (Garanti Bankası), Finans WebPos (Finansbank) sistemlerini ülkemizdeki Sanal POS hizmetlerine örnek verebiliriz.

Sanal POS kullanmanın sağlayacağı faydalar

Internet yoluyla gerçekleştirilen alışverişlerde en etkili ve güvenli ödeme metodudur.
Perakende (B2C- firmadan müşteriye-) satışlarda %35-40 arasında artış sağlar.
İşletmenin pazarlama alanını dar bir bölge ve şehirden kurtarıp, ülke çapında yaygın bir ağa kavuşmasını sağlar hatta ihracat olanaklarını da ciddi anlamda arttırır.
İmaj, tanıtım ve rekabet gücü anlamında işletmeye büyük artı değer sağlar.
Yüzyüze satış sürecinden çok daha kısa sürelerde alışveriş olanağı tanır.
Elektronik ortamda yapılan işlemler kısa sürede tamamlanır, zamandan tasarruf sağlanır. Bu durum müşteri memnuniyetini arttırır, devamlılık sağlar.
Sipariş ve satışlarla ilgili bilgileri veri tabanına aktarır ve saklar.

crm nedir ?

Yeni ekonomi anlayışı ile birlikte, e-ticaret altyapısının çeşitlendiğini, bir firmanın tüm bölüm ve ilevleri için bir otomasyon sistemi yaratılabildiğini söyleyebiliriz artık. Buna bir örnek olarak da, klasik müşteri ilişkileri yönetimini elektronik bir otomasyon altyapısı ile güçlendiren e-CRM uygulamalarını gösterebiliriz. E-ticaret uygulamalarının müşteri odaklı bir yönetim anlayışıyla gerçekleştirilmesini e-CRM (e- si ar em) olarak özetleyebiliriz. İkisi de yazılım ve otomasyon teknolojilerini kullansa da, e-ticaret ve CRM ayrı şeylerdir. CRM, tüm süreçleri (üretim,finans,pazarlama,satış) kapsayan bir"yönetim felsefesi"ya da yaklaşımı iken, e-ticaret, tüm bu süreçlerde teknolojiyi kullanan etkin bir "araçtır." Eğer e-ticaret uygulamalarınızın temeline müşteri odaklı bu yönetim anlayışını yerleştirdiyseniz buna da kısaca e-CRM diyebiliriz.

e-CRM´i bu anlamda e-ticaret faaliyetlerini müşteriye dayalı yürüten bir yazılım sistemidir diye düşünebiliriz. e-CRM için firmanıza uygun bir yazılım ve otomasyon sistemine ihtiyacınız vardır. Ama bunu sadece,teknolojik ve bilgi iletişim altyapıları,programları üreten bir firmadan tedarik edip,kendi firmanıza uyarlamanızla bu işin biteceğini sanmayın. e-CRM Internet´ten müşteriye ulaşmanın ve Internet´ten pazarlamanın anahtarıdır. Kapıyı açar ama içeri girmek size kalmıştır.

Her şeyden önce gerçek bir verimlilik artışı ve yoğun rekabete dayanıklılık için konuya bütüncül bakmak gerekecektir. e-CRM, e-ticaretin teknik altyapısıyla, CRM yaklaşımının uyumlaştırılması sonucu ortaya çıkan, bu yüzden de bütüncül olarak algılanıp, değerlendirilmesi gereken bir kavramdır. Yapılan araştırmalar, bu bütüncüllüğü algılayamayan, yönetim yapısı ve süreçlerini yeniden organize etmeyip sadece yazılım üzerinden e-CRM uygulayan firmaların başarısızlıklarını ortaya koymaktadır.

Firmanın kendini müşterinin yerine koyup onun gibi düşünebilmesi, bir yazılımın ya da bilgi işlem sisteminin yapacağı bir şey değildir. Otomasyon süreci çok kısa sürede müşteriden bilgi alıp bilgi göndermenize yarar. Bunu sağlayan e-CRM yazılımlarıdır. Bu bilgiyi değerlendirecek ve anlamlı sonuçlar çıkaracak olan ise insandır. CRM, sizi müşteriye herhangi bir aracı koymadan ulaştıran, onun tüm alım-satım sürecindeki duygu ve düşüncelerini yönlendiren,onun gelecekteki olası isteklerini (hatta içgüdülerini) belirleyip o istekleri ona sunarak firmaya ve ürüne bağımlı kılmaya çalışan bir faaliyetler bütünü iken, e-CRM tıpkı e-ticaret gibi, bu yoldaki tüm kapıları açan bir anahtar,bu faaliyetlerin yürütülmesini sağlayan etkin bir teknolojik araçtır.

Etkili bir e-CRM uygulamasının koşulları

Şunu söyleyebiliriz ki, artan rekabet, geleneksel verimlilik arttırıcı yöntemlerin eskisi gibi olumlu sonuçlar vermemeye başlaması ve hantallaşan iş akışları, gelecek on yılda irili ufaklı birçok firmanın ciddi anlamda CRM uygulamalarına geçmesini kaçınılmaz kılacaktır. Fakat bu uygulamayı ciddi olarak gerçekleştirememenin getireceği maliyette üzerinde dikkatle durulması gereken bir konu. Bu riski ya da kaybı yaşamamak için, e-CRM uygulamalarına geçmeyi düşünen firmalara şunları öneriyoruz.

e-CRM bir yazılımdır ama tek başına bir şey ifade etmez.
Her firma kendi iş içeriğine uygun bir e-CRM yazılımı kullanmalıdır. (İş süreçleri daha karışık olan büyük bir firmayla, daha basit iş akışı olan bir KOBİ´nin daha farklı bir yazılım kullanacak olması gibi.)
Etkin CRM ya da e-CRM uygulaması için firmanın tüm iş süreçlerini yeniden yapılandırması gerekir. Bunun için tüm süreçleri oluşturan departmanların (üretim,finans,pazarlama gibi) eksiksiz olarak müşteri odaklı bir strateji izlemesi şarttır.
Müşteri, sadece pazarlama anında ilişki kurulan bir öğe olarak değil, pazarlama öncesi ve sonrasında dikkatlice takip edilen, firmanın tüm faaliyetlerinin merkezinde olan "kutsal bir varlık" olarak kabul edilmelidir.
Müşteriden e-CRM otomasyon sistemiyle edinilen bilgilerle sağlam bir müşteri bilgileri veri tabanı oluşturulmalı fakat bu bilgiler devamlı surette güncellenmelidir.
Bu bilgilerle müşterinin tüm istekleri ve gelecekteki olası satın alma davranışları tahmin edilmeli, bunu sağlayacak dinamik bir müşteri ilişkileri ağı kurulmalıdır.

E-imza ve E-sertifika ile ilgili bazı kavram ve tanımlar

Açık anahtar altyapısı nedir? Neden kullanılır? Ne sağlar?

Açık anahtar altyapısı, elektronik imzanın güvenli ve güvenilir biçimde uygulanmasını sağlamak için kullanılan bir teknolojidir. Açık anahtar altyapısı kullanılarak oluşturulan bir elektronik imzanın kimden geldiğinin belirlenmesi, imzalanmış metnin elektronik ortamdaki doğruluğunun ve bütünlüğünün sağlanması, atılan imzanın imza sahibi tarafından inkar edilememesi sağlanmış olur. Kanun´da (Elektronik İmza Kanunu) yer alan güvenli elektronik imzanın özelliklerinin sağlanması için kullanılır.

Zaman damgası nedir? Neden ve hangi uygulamalarda kullanılır?

Zaman damgası Kanun´da "bir elektronik verinin, üretildiği, değiştirildiği, gönderildiği, alındığı ve / veya kaydedildiği zamanın tespit edilmesi amacıyla, elektronik sertifika hizmet sağlayıcısı tarafından elektronik imzayla doğrulanan kayıt" olarak tanımlanır. Elektronik ortamda doküman, kayıt, sözleşme gibi elektronik verilerin, belirli bir zamandan önce var olduğunu kanıtlamak için kullanılır. Elektronik ortamdaki işlemlere güvenilir zaman bilgisi eklenebilmesini sağlar. Üzerinde zaman bilgisi olması gereken elektronik başvuru, tutanak, sözleşme ve benzeri her türlü elektronik veri üzerinde kullanılabilir.

Elektronik Sertifika Hizmet Sağlayıcısı (ESHS) nedir? Görevleri nelerdir?

Elektronik Sertifika Hizmet Sağlayıcısı (ESHS), Kanun´da "elektronik sertifika, zaman damgası ve elektronik imzalarla ilgili hizmetleri sağlayan kamu kurum ve kuruluşları ile gerçek veya özel hukuk tüzel kişileri" olarak tanımlanır. ESHS´ler, kayıt merkezleri aracılığıyla aldıkları elektronik sertifika başvurularını değerlendirip güvenli koşullar altında işleyerek elektronik sertifikaları üretir, sertifika başvuru sahiplerine ulaştırır. Bunun yanı sıra, sertifika yenileme ve iptal hizmetlerini, sertifika ve iptal durumu yayımlama hizmetlerini ve zaman damgası hizmetlerini verir. Kanun gereği, Türkiye´de elektronik imzanın hukuki ve teknik yönleri ile uygulanmasına ilişkin usul ve esasları düzenleme ve ESHS´lerin faaliyetlerini denetleme görevi Telekomünikasyon Kurumu´na (TK) verilmiştir. TK denetimi sonrası ESHS olarak faaliyete geçebilir.

Sertifikalar ne kadar süreyle kullanılır?

Elektronik sertifikaların geçerlilik süreleri güvenlik nedeniyle sınırlandırılmıştır. Geçerlilik süresi sonunda, sertifika sahiplerinin elektronik sertifika kullanımına devam etmek istemeleri halinde sertifikalarını ESHS´lerin bildirecekleri yöntemler uyarınca yenilemeleri gerekir. Nitelikli elektronik sertifikalar için genel olarak 1 yıllık bir geçerlilik süresi kullanılır.

Sunucu (SSL) sertifikaları nedir, nasıl kullanılır?

Sunucu (SSL) sertifikaları, Internet ve her türlü ağ üzerinde istemci bağlantılarını karşılayan sunucuların, bağlanan kullanıcılar tarafından doğrulanması amacıyla kullanılır. Eğer sunucuya bağlanan kullanıcı da elektronik sertifika sahibiyse, sunucu bağlantısı sırasında kullanıcının da kimliğinin doğrulanması mümkündür. Bu tür bir bağlantı sırasında istemci ve sunucu arasında güvenli bir iletişim kanalı oluşturulur ve gönderilip alınan bilgiler şifrelenerek transfer edilir. Sunucu (SSL) sertifikaları, özellikle İnternet üzerinde hizmet veren web sunucularının bağlantı güvenliğinin sağlanması amacıyla kullanılır. Bankacılık, e-ticaret ve e-devlet uygulamaları sunucu (SSL) sertifikalarının sık kullanıldığı alanlardır.

Kök sertifika ne demektir?

Bir ESHS´nin, başvuru sahiplerine yönelik olarak sertifika üretebilmesini sağlayan, ürettiği nitelikli elektronik sertifikalar ve sunucu sertifikaları gibi sertifikaları imzalamakta kullandığı imza oluşturma verisine karşılık gelen imza doğrulama verisiyle ESHS´nin kurumsal kimliği arasında bağ kuran, yine ESHS´nin kendi imza oluşturma verisiyle imzalanmış sertifikasına kök sertifika adı verilir. 5070 sayılı Elektronik İmza Kanunu uyarınca TK tarafından yayımlanan "Elektronik İmza Kanununun Uygulanmasına İlişkin Usul ve Esaslar Hakkında Yönetmelik" gereği, ESHS faaliyete geçmesini müteakip yedi (7) gün içinde; kök sertifikasının sertifika özet değerini ve özetleme algoritmasını kendi İnternet sayfasında yayımlar, ulusal yayın yapan en yüksek tirajlı üç (3) gazetede ilan vermek suretiyle kamuoyuna duyurur ve gazete ilanlarının bir örneğini TK´ya iletir.

Elektronik sertifikaların içeriğinde hangi bilgiler vardır?

Sertifika sahibi bilgileri (isim, şirket, çalışılan birim, yer, ülke, e-posta vb.)
Sunucu sertifikalarında sunucu bilgileri (alan adı, sunucu adı, şirket adı vb.)
Ülke adı TR (Türkiye) olmak üzere ESHS bilgileri
Sertifika geçerlilik süresinin başlangıç ve bitiş zamanı
Kullanılan elektronik imza oluşturma algoritmaları
Sertifika sahibi imza doğrulama verisi
Sertifika seri numarası
ESHS´nin imzası
Nitelikli elektronik sertifikalarda, Kanun gereği aşağıdaki bilgiler de yer alır:

Sertifikanın "nitelikli elektronik sertifika" olduğuna dair bir ibare
Sertifika sahibi diğer bir kişi adına hareket ediyorsa bu yetkisine ilişkin bilgi,
Sertifika sahibi talep ederse meslekî veya diğer kişisel bilgileri,
Varsa sertifikanın kullanım şartları ve sertifika kullanımına yönelik maddi işlem sınırı.
Çapraz Sertifikasyon nedir?

Çapraz sertifikasyon, bir ESHS tarafından üretilen elektronik sertifikaların, diğer bir ESHS´nin ürettiği elektronik sertifikalara güvenen üçüncü taraflar tarafından, ESHS´nin kök sertifikası üçüncü tarafın elinde olmadığı halde doğrulanabilmesini sağlayan, ESHS´lerin birbirlerinin kök sertifikalarını imzalamasıyla oluşturdukları sertifikasyon biçimidir.

Elektronik sertifikalar ne tür yazılımlar ile kullanılabilir?

Elektronik sertifikaların bilgisayar sistemlerine tanıtılması ve elektronik imzalı metinlerin imza doğrulaması için çeşitli istemci yazılımları kullanılabilir. Bu yazılımlar uygulamaya özel geliştirilebileceği gibi, bu işlevi yerine getiren paket programlar da bulunabilir. Pek çok e-posta programı ve İnternet tarayıcısı da elektronik sertifika kullanım özelliklerine sahiptir.

Sertifika İlkeleri ve Sertifika Uygulama Esasları nedir? Ne amaçla kullanılır?

Sertifika İlkeleri, sertifika başvurularının alınması, sertifika üretimi ve yönetimi, sertifika yenileme ve iptal işlemleriyle ilgili tüm idari, teknik ve yasal gereklilikleri ortaya koyar; ESHS´nin, sertifika sahibinin ve üçüncü tarafların uygulama sorumluluklarını belirler. Sertifika Uygulama Esasları ise, Sertifika İlkeleri´nde belirlenen gerekliliklere ESHS, sertifika sahipleri ve üçüncü tarafların nasıl uyduğunu, bu gerekliliklerin nasıl hayata geçirildiğini açıklar. ESHS´ler, bağlı bulundukları Sertifika İlkeleri´nin koşullarını, Sertifika Uygulama Esasları uyarınca yürüttükleri işletme faaliyetleriyle sağlar.

Kaynak: turktrust.com

elektronik imza nedir ?

Elektronik ortamda iletişim kurarken gönderilen bilgi ve belgelerin, ticari ya da resmi işlemlerin bağlayıcı olabilmesi, imza şartını getirmektedir bilindiği gibi. Bunu Internet ortamında sağlayan mekanizmaya elektronik imza denmektedir. Bu anlamda elektronik imzanın normal bir imzadan, uygulama, amaç ve işlerlik açısından hiçbir farkı yoktur. Fark sadece, biri kağıda atılırken, diğeri elektronik ortamda kripto edilmiş dijital bir şifredir. Bir belgenin hangi kişi ya da kuruma ait olduğunu gösteren ve sahibi olduğu kişiyi bağlayan (tıpkı normal imza gibi) hukuki bir uygulamadır.

5070 sayılı Elektronik İmza Yasası´nda güvenli elektronik imza, "münhasıran imza sahibine bağlı olan, sadece imza sahibinin tasarrufunda bulunan güvenli elektronik imza oluşturma aracı ile oluşturulan, nitelikli elektronik sertifikaya dayanarak imza sahibinin kimliğinin tespitini sağlayan, imzalanmış elektronik veride sonradan herhangi bir değişiklik yapılıp yapılmadığının tespitini sağlayan imzadır" şeklinde tanımlanmaktadır.

Elektronik imza işlemlerinin uygulanma ve denetimi konularındaki sorumluluk aynı yasayla Telekomünikasyon Kurumu´na verilmiş durumda. Yani e-imza kullanmak isteyen tüm kişi ve kurumlar Telekomünikasyon Kurumu´nun onay verdiği kuruluşlar aracılığı ile elektronik imza sözleşmesi yapabilecekler.

Elektronik imza Internet ortamında genel olarak şu 3 temel amacı yerine getirmektedir:

Veri bütünlüğü: Verinin izin alınmadan ya da hata ile değiştirilmesini, silinmesini veya veriye ekleme-çıkarma yapılmasını önlemek,

Kimlik doğrulama ve onaylama: İster ticari ya da hukuki, isterse kişisel tüm mesaj ve bilgilerin, mesaj sahibine ait olduğunu ve geçerliliğini sağlamak,

İnkar edilemezlik: Kişi veya kurumların elektronik ortamda gerçekleştirdikleri işlemleri inkar etmelerini önlemek.

Gerek e-devlet dönüşüm sürecinde, gerekse iş yaşamının Internet ortamına kaydırılıp, kişisel ve kurumsal tüm işlemlerin web siteleri aracılığıyla yapılması projesi, e-imza uygulamasının gerekliliğini ortaya çıkarmaktadır. Örneğin kamu alanındaki,

Kurumlararası iletişim (Üniversiteler, Emniyet Müdürlükleri, Nüfus ve Vatandaşlık İşleri Müdürlükleri vs.)
Sosyal güvenlik uygulamaları (SSK, Bağ-Kur, Emekli sandığı, özel sandık ve sigortalar)
Sağlık uygulamaları ( sağlık personeli, hastaneler, eczaneler)
Vergi ödemeleri
Elektronik oy verme işlemleri
Ve her türlü kişisel başvurular (ÖSS, LGS, KPSS, LES, pasaport vb) ile,
İş ya da ticaret alanındaki,

Kişisel ya da kurumsal Internet bankacılığı
İhracat ve ithalat gibi dış ticaret işlemleri
Sigortacılık işlemleri
Kağıtsız ofisler
e-Pazarlama ve e-Satış
e-Sözleşmeler
e-Sipariş
e-Tedarik ve müşteri ilişkileri
Vergi ödemeleri
gibi tüm uygulamalar, güvenli bir e-imza yapılanması ile geçerliliğini koruyacaktır. Önümüzdeki yıllarda gittikçe yaygınlaşıp zorunlu hale gelecek e-dönüşüm uygulamaları nedeniyle ticaret ve kamusal yaşamın vazgeçilmez bir öğesi olacaktır e-imza. Bu konuda geç davranmak sadece yasal zorunluluk anlamında değil, Internet ortamına aktarılan iş süreçlerinde de ciddi maddi kayıplar (Güvenlik ve verilerin korunması açılarından) yaratabilecektir.

Elektronik imza yasasını incelemek için www.tk.gov.tr/eimza/eimza_yasasi.htm adresini, e-imza ile ilgili mevzuatı takip etmek için de, www.e-imza.gen.tr adresini ziyaret edebilirsiniz.

b2b nedir ?

E-ticaret kapsam olarak 2 farklı pazara ayrılır. Bunları B2B (Business to business-Firmadan firmaya e-ticaret) ve B2C (Business to customer- Firmadan müşteriye yönelik e-ticaret) pazarları olarak belirtebiliriz.

Genel anlamda e-ticaret, tanınma açısından B2C pazarı olarak daha çok bilinmektedir. Bunda temel etken, son kullanıcıya yani müşteriye yönelik olmasındadır. Bu nedenle daha çok insanı ilgilendirebilecek bir pazar alanıdır. Oysa B2B pazarı daha dar bir kesime seslenmesine rağmen, hem iş yapan firmalar arası işlem yükü hem de özel işlerlik açısından B2C´ ye göre daha etkin, kapsamlı ve teknik bir yapıya sahiptir. Bu anlamda B2B çok daha sektörel bir ağı simgeleyen bir kavramdır. Örnek verirsek, KOBITEK.COM olarak vereceğimiz hizmetler büyük oranda, KOBİ´ lerimize yönelik ürün ve hizmet sunanların buluşturulması ve bir "tedarikçiler pazarı" ortamı yaratmaya dayalı olduğu için, tüm bu çalışmalar B2B pazarı kapsamında değerlendirilecek oldukça geniş bir ağı kapsayacaktır.

Yukarıda verdiğimiz örneğe dayanarak kısa bir tanım yapacak olursak, B2B´yi KOBİ´ ler için tedarik pazarı olarak da niteleyebiliriz. KOBİ´ ler bu şekilde Internet üzerinden, mal ve hizmet üretim aşamasında ihtiyaç duydukları ürün tedariklerini ya da tam tersi, başka KOBİ´ lerin ihtiyaç duyduğu ara malların toptan satışlarını kolaylıkla yapabilme olanağına kavuşabilmektedirler.

Yapılan araştırmalar 2004 yılı için Türkiye´deki e-ticaret pazarının 4 milyar dolara ulaşacağı ve bunun %62´sini (Yaklaşık 2.5 milyar dolar) B2B pazarının, kalan 1.5 milyar dolarlık kısmını ise B2C pazarının karşılayacağı gösterilmektedir. Bu rakamlar da açıkça gösteriyor ki, e-ticarette asıl yük ve iş hacmi B2B yani tedarik pazarında yoğunlaşıyor. Ülkemizde e-ticaretin gün geçtikçe ilerlemesi bu hacmi çok daha yükseklere taşıyacaktır.

kobitek.com

Date and Misc Data Types

MySQL Date and Time data types

DATE YYYY-MM-DD.
DATETIME YYYY-MM-DD HH:MM:SS.
TIMESTAMP YYYYMMDDHHMMSS.
TIME HH:MM:SS.

Also MySQL has 2 misc data types

ENUM ( ) Short for ENUMERATION which means that each column may have one of a specified possible values.
SET Similar to ENUM except each column may have more than one of the specified possible values

MySQL Text Data Types

MySQL Text and Blob data types

CHAR( ) A fixed section from 0 to 255 characters long.
VARCHAR( ) A variable section from 0 to 255 characters long.
TINYTEXT A string with a maximum length of 255 characters.
TEXT A string with a maximum length of 65535 characters.
BLOB A string with a maximum length of 65535 characters.
MEDIUMTEXT A string with a maximum length of 16777215 characters.
MEDIUMBLOB A string with a maximum length of 16777215 characters.
LONGTEXT A string with a maximum length of 4294967295 characters.
LONGBLOB A string with a maximum length of 4294967295 characters.

MySQL Numeric Data Types

MySQL has 5 integer data types. Tinyint, Smallint, Mediumint, Int and Bigint.

Here is the range for each integer data type.

TINYINT
Signed -128 to 127
Unsigned 0 to 255

SMALLINT
Signed -32768 to 32767
Unsigned 0 to 65535

MEDIUMINT
Signed -8388608 to 8388607
Unsigned 0 to 16777215

INT
Signed -2147483648 to 2147483647
Unsigned 0 to 4294967295

BIGINT
Signed -9223372036854775808 to 9223372036854775807
Unsigned 0 to 18446744073709551615

Apart from Integer data types MySQL also has Float, Double and Decimat Numeric Data Types.

FLOAT
Allowable values are -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38.

DOUBLE
Allowable values are -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308.

DECIMAL
The maximum number of digits (M) for DECIMAL is 64.

Getting Random Rows

Selecting Random rows from a MySQL table

select * from myTable order by rand() limit 5

'Returns 5 random rows from table myTable

Expires Header in PHP

Expires header tells the client about the freshness of the page. If it is configuered properly the server sends an expires header with other headers to the client. This is an important information for the client. It means that the page is fresh only till the expiry time. So till this expiry time client can cache the page and after it is expired client need to contact the server for a fresh page.

For example if the expiry time is set to 1 hour then client will keep the page in cache and if somebody request to open the site within 1 hour then browser will load it from the cache. After one hour if a user open the site in the browser then browser will contact the server again to get a fresh page.

To send an expires header first you have to decide about the freshness period or expiry period. It purely depdends upon your site and will vary site to site.. For example for a news site the pages will be updated frequently or every hour while for a simple personal site it may be weeks or months.

Suppose you are updating your pages every day then set the expiry date for 24 hours. To set the expiry time you have to convert it in to seconds. i.e.

$expirytime=24 * 60 * 60;

Now we have to add it with current time

$expirytime=time() + $expirytime;

Now format it to GMT/UTC date/time

$expires = gmdate("D, d M Y H:i:s", $expirytime) . " GMT";

Finally send the header with header function.

header("Expires: " . $expires);

This will send a header to the client like this

Expires Sat,08 Jul 2006 17:19:05 GMT

This means the page is fresh only till this time and date. After this time the client need to contact the server again for a refreshed page.

Always you have to take special care while sending a header to the client because you have to make sure that the header info should go first before outputing anything.

Last Modifiled Header in PHP

The last modified http header indicates the date and time the resource was last modified. For a file it is the date and time it was last modified.

First get the date and time of the file in GMT
$date=gmdate("D, d M Y H:i:s",filemtime($_SERVER['SCRIPT_FILENAME']))." GMT";

Sends the Last Modified header to the client
header("Last-Modified: ".$date);

HTTP Status Codes 2xx

200 OK - The request sent by the client has succeeded. With this response server returns the requested information according to the request sent by the client. Always server returns a 200 status code with some extra data according to the request method. This means the request was successfull and this is the data as per the request. i.e. server was able to find the requested resource or was able to perform the requested action and in a position to deliver that to the client.

For a GET request server returns the requested resource. For example if the client requested a html file then server returns the file with this code. For a graphic file or other type of resources server returns that resource with the 200 response.

For a HEAD request server returns the header info of the requested resource. For example for a html file, server returns the http header part of the file. This normally includes the HTTP version, date, Server info, last modified date, etag, conent-type, content-length, conent-style-type etc. Some search engine spiders like Googlebot uses head requests to get quick info of a file.

For a POST request server returns the result of that action. For example when you submit a HTML form with post request, server takes that values from the from elements like input, textarea, select and return to the client with 200 status code.

201 Created - This response means the request was succeffully completed and a new resource has been created. In the entity of the response newly created URIs (Uniform Resource Identifier) will be listed with the most specific URI in the location header field. The entity type will be described in the Content-Type header field. 201 status code also may return an etag for the newly created resoruce.

202 Accepted - This means that server accepted the request but processing not completed. The request was accepted by the server for processing but it might be processed or disallowed at the actual time of processing. Since http communication is asynchronous there is no way to return a status code at the time of processing. When the server actually run the task the connection to the client may not exists. So the server just send a 202 telling the client that it accepted the request and will consider later for processing. There is no guarantee that it will be processed. But it will return the current status of the request or an approximate time user can expect the process to complete. This type of response is useful for routine jobs or tasks run once a day or run once in a predefined time.

203 Non-Authoritative Information - The meta information returned in the entity header is not definitive set as available in the origin server.

204 No Content - The server completed the request successfuly but does not require the return of an entity-body. It might return an updated meta information like headers.

205 Reset Content - The request was successful but the User-Agent should reset the document view that caused the request.

206 Partial Content - The partial GET request has been successful.

HTTP Status Codes 1xx

100 Continue - This tells the clients that it should continue with its request. This informs the client that the initial part of the request has been received and accepted by the server. Now client should continue by sending the remaining part. If the request has been completed then ignore this response. The server will send a final response after all requests completed.

101 Switching Protocols - Tells the client that server is going to switch to a new protocol for the current connection. The new protocol will be mentioned in the Upgrade message header field. Server will do this only if there is a better way to communicate with the new protocol. For example server may switch to a new version of http protocol instead of old one whenever requied. i.e. instead of HTTP/1.0 server may swich to HTTP/1.1

Relative and Absolute Links

In HTML within the HREF attribute of the anchor tag a web page can be referenced in many ways. This is very important in web site creation because search engine robots and spiders heavily depend on this link method. If this is not in the proper way then spiders may get confused and will create crawling problems.

Mainly there are two types of linking structure

1. Absolute Links

This is the most common way to link a document. An absolute link includes the protocol used, domain name, directory name and file name. An example of absolute link is

href="http://www.zonora.com/freecell/download.htm"

Absolute linking is the best way to refer a document because it contains all information about the document and it is not reference to any other object so a browser or search engine robot can directly fetch the resource without any problems.

But the main disadvantage with absolute linking is that it will increase the page size. This will become more crucial if you have so many links in the page. Even though pages will become bulky, this method is suggested by major search engines including Google because this is the perfect method for search engine spiders. If you don't have too may links then you can go for this linking structure.

2. Relative Links

In this method the new page is referenced from the current document with the assumption that server or robot knows the current documents location.

For example to link to another document in the same directory

href="features.htm"

Here we are just giving the file name because all other things are same for the current document and the new document including protocol, domain name and directory.

To link to a file in the parent directory

href="./products.htm"

To link to a file in two directories above

href="././file.htm"

To link to a file in a subfolder

href="subfolder/downloads.htm"

Main advantage with relative link is it reduces the page size. This is very useful if you have many links in the page. But there are many disadvantages too with relative linking. Relative link may confuse search engine spiders and create crawling problems. So always it is better to use absolute linking whenever possible. But some HTML editors like FrontPage always use relative linking.

3. Root Links

This is another way to link documents and this is a mixture of absolute link and relative link. In this method we take root of the web as the reference point and avoid using protocol and domain name.

An example of Root Linking

href="/products/file1.htm"

This method is also good for search engines but not perfect link absolute links so many webmasters don't use it.

So it is always better to use absolute links whenever possible. In normal circumstances all these three ways will works perfectly. But problems may start in the long run especially if you have too many redirected pages or 404 or other http errors.

If-Modified-Since Header

If-Modifled-Since header is an interesting http request header which saves lot of bandwidth and server resrources. Server must be configured properly to return a proper response for this request header. Intelligent search engine robots like Googlebot can make use of it and this reduces unnecessary crawling of pages which were not updated after last visit.

To configure this first you have to configure last-modified header for all pages. This is the last updated time and date of the particular file. In php you can create a last-modified header like this..

$timestamp=filemtime($_SERVER['SCRIPT_FILENAME']);
$last_modified = substr(date('r', $timestamp), 0, -5).'GMT';
header("Last-Modified: $last_modified");

This takes the time and date of the requested file and returned to the client. (whether it is a browser or a search engine spider)

When a browser or robots get this information it store the time and date to it's internal cache along with the file. In next visit the client add a new request header with the header information called If-Modified-Since with the stored date. That means the client is telling the server that i have a copy of the file dates so and so. Is it modified after that ?

Now the sever has to compare the date with the server file date and should return a response accordingly. If both dates are same then server has to return a '304 Not Modified' response otherwise it has to send the modified file to the client.

With $_SERVER['HTTP_IF_MODIFIED_SINCE'] you can get the if-modified-since header. Check it with isset command and if it is set then you have to compare it with server file date and time. If both are same then return a 304 status code otherwise return the whole file.

For static pages normally server takes care of this process but for dynamic pages (created in PHP, ASP) you have to manually configure it. If not configured, for each requests server has to deliver the whole file and it takes lot of server resources and bandwidth. If cofigured properly server returns only modified files to the client and reduce server overheads.

Apart from this header you can also return an etag with each file and get the request header with if-none-match header. Get the header with $_SERVER['HTTP_IF_NONE_MATCH'] and compare it with the latest etag. You can encrypt the current date and time with md5 command and send it as etag.

Using these headers improves server performance especially you have large database and large number of files. This also reduces page loading time at the browser level because browser has to download only modified files from the server. This will be very useful for returing visitors to your site. For search engine also it helps a lot because it has to download only modified pages and so robots can crawl more pages instead of downloading same pages again and again.

Robots.txt File

Robots.txt file is used to stop accessing specific part of a web site from web spiders and web robots. Robots exclusion standard or robots.txt protocol is a very popular method to hide a part of web site from search engines. You can specify a particular folder or a file from a particular search engine robot.

To enable this protocol you have to create a file names robots.txt and upload it to the top level folder. This is a plain text file so create it with windows notepad or with any text editor. First you have to specify the user agent and then the directories and files you want to hide. For example this will hide all files and folders from all robots

User-agent: *
Disallow: /

To prevent indexing cgi-bin and images directories use this

User-agent: *
Disallow: /cgi-bin/
Disallow: /images/

If you want to stop specific robots then use the robots name instead of wildcard. To stop Google's robot (googlebot) from accession myfolder use this

User-agent: Googlebot
Disallow: /myfolder/

You can also specify file names instead of folders.

User-agent:*
Disallow: /search.php
Disallow: /download.html

You have to be very careful if you have directives for all robots and particular for a special robot. For eg. Googlebot ignores general directives if there is a special section for Googlebot.

To prevent Yahoo search robot to access a section use

User-agent: Slurp
Disallow: /search-engines/

For msn search it is msnbot.

Normally a web robot visit the site collect the information and store it in it's internal database normally call it search index. So to avoid indexing unwanted or secret files you have to use this robots.txt file.

Google removal tool also uses robots.txt to remove unwanted urls. You can request remove urls from google's index with robots.txt file with this tool.

There are many other tags also exists in robots.txt protocol like crawl-delay, visit-time, request-rate etc. But these are not accepted by all robots. For eg. Googlebot doesnt obey crawl delay directive.

It is also possible to stop indexing a page with meta tag. Put this tag in each page you want to hide from search engines.

Yahoo Site Explorer

Yahoo also come out with a sitemap kind of thing for webmasters, Yahoo Site Explorer.

Eventhough it has many similarities to Google's Sitemap program, it is a good move and will help webmasters a lot.

First thing we should have a yahoo account to proceed. So if you dont have create one.

Then login to your account and open site explorer home page. There you can add your sites with Add My Site option.

Once added it will show under My Sites.

Now you have to authenticate your site. Yahoo provides a file like yahoo_authkey_xyz.txt with a code inside. You have to just download this file and ftp in to your site. If you are facing problem while downloading, then you can create a text file manually and include the code.

After uploading the file click on authenticate. It will take some time to authenticate. Yahoo promises that they will authenticate withing 24 hours. All our sites authenitcated within one hour.

Now you can add your site feed with Add Feed option.

Google Webmaster Central

Google has renamed it's sitemap program. Now it is called Google Webmaster Central. Many new features added.

One is preferred domains option. With this you can specify your preferred domain name with or without www. i.e http://www.example.com or http://example.com.

This solve the canonical problem issues normally create lot of problems to webmasters.

Once it is set, it will take some time to reflect in serps because google has to re-crawl the site with the new setting. Anyway it is a nice move from Google's side because many websites have this kind of problems.

Sitemap Suggestions

Now both Google and Yahoo have Sitemap features, Google Webmaster Central and in Yahoo Site Explorer. These two are very helpful for webmasters, but still they can add many new features like..

1. Option to include deleted and redirected pages.. so with this webmaster can inform about deleted pages which are still in the search index.

2. Option to view all indexed pages with page rank.. webmaster can use this instead of site command because site: is not returning correct results always..

3. New feature prefered domain is a good one in sitemap... but full url is already in the sitemap file... Why can't google take it from there?. anyway it is a nice option..

4. An announcement section for system maintenance, updates...data refreshes, alg changes.. etc

5. Number of pages crawled per day...

6. Default page.. Many html editors link to index.htm or index.html when you link to the top directory.. but when submit to other sites people submit only the domain name. This creates duplicate pages in google's index.. So like prefered domain, sitemap should have option to specify a prefered index page.

7. Average page loading time (while crawling the site). with this we can find out any crawling problem and fine tune our scripts and judge server performance.

8. if-modified-since, hearders, robots.txt, htaccess..etc are up to expectation or not ?

9. An internal ranking for each page (not page rank).. how much value given to each page.. like priority in sitemap...(0 to 1)

10. An overal rating of the site.. (depends on crawling efficiency, up time, quality of pages etc)

Net and the Emperor's new clothes

When it comes to .Net, Microsoft always sounds cocksure about how this bet-the-company software initiative is going to rock the computing universe.

But each time Bill Gates gets going on the subject, he winds up stumping us with declarations like this: "We don't have the user-centricity until we understand context, which is way beyond presence--presence is the most trivial notion of context."

Hegel on acid couldn't be more impenetrable.

Yes, it's long been Microsoft's habit to speak about .Net in tongues, just as Bill G did in the line above, which I lifted from the Microsoft chairman's recent talk with press and analysts at a .Net briefing day.

Hegel on acid couldn't be more impenetrable.
And the company continues to turn out torturous position papers with alacrity. That's bad news in bells since most of this grand software initiative still exists only as a PowerPoint demo on steroids.

But even Gates can't ignore the reality any longer.

After blowing smoke the last couple of years, Microsoft is finally acknowledging what the rest of us only said sotto voce: This project, as even Gates might allow, remains a riddle wrapped in a mystery inside an enigma.

"We still get people saying to us, 'What is .Net?'" he said. "It's one of those great questions that people can say, 'Yes, it's come into focus at the infrastructure level,' but a little bit where we go beyond that has been unclear to people."

That's the computer equivalent of the emperor stripping off his new clothes to reveal the Redmond family jewels.

Microsoft has long suffered a failure to communicate when it comes to .Net.

Anecdote: After the .Net introduction in 2000, Microsoft's Steve Ballmer ran into a bunch of reporters at a press reception. "So," he asked, thrusting a carrot into the cheese dip, "what do you guys think .Net is?"

"Shoot," I mumbled. "He's the one with the multiple zeros in the bank account. If the company CEO can't explain it, what does he want from me?"

Actually, Ballmer was on a fishing expedition. He simply wanted to test whether the press would take away the right message from the day's indoctrination. Two years later, I'm still not sure Ballmer would get the answer he desired.

The daily newspapers describe .Net one way; the trade rags describe it another way. The common points of agreement are references to programs that understand XML and to Web services that will allow software and devices to communicate easily.

Microsoft has done a good job talking up XML and the surrounding Web services protocols. But elsewhere it's a mess. Whichever genius came up with the marketing-challenged name of .Net My Services should be sent to serve as Larry Ellison's gyochu as penance.

The underlying idea of .Net My Services was compelling enough: It was supposed to let people access personal information online on any device. They would then be able shop or bank or check their e-mail online. The only problem was Microsoft couldn't figure out where it wanted to go and the project got sidetracked because of internal debates about the proper business model and a lack of industry support.

Elsewhere, the .Net-spawned concept of software as a service still isn't ready for prime time. It works just fine with Windows Update, but that's a far cry from the usefulness that would get Corporate America to pay for automatic updating across various devices.

Microsoft puts out great videos, but the reality is that .Net remains largely a repackaging of existing technology, accompanied by a collection of jargon-ridden press releases.
Microsoft also has considerably more work to do before it can consider Passport an unqualified success. The authentication service, which stores personal information and passwords, lets people surf the Internet without requiring them to re-enter their personal data at different Web sites. About 14 million users have so far registered for Passport, according to research firm Gartner. But the raw numbers are misleading. The majority of people signing up did so because joining the authentication service is required before people can use certain features of Windows XP and Hotmail e-mail, among other Microsoft products.

Microsoft puts out great videos, but the reality is that .Net remains largely a repackaging of existing technology, accompanied by a collection of jargon-ridden press releases. That's not a business strategy; that's a Hail Mary pass.

Breathing life into grandiose visions is no easy feat. Hewlett-Packard's former CEO Lew Platt couldn't do it. When he began plugging the company's E-speak technology in 1999, Platt was trying to explain what was the first comprehensive vision of Web services. But it fell on deaf ears--in no small part because of HP's own bumbling--and in the end, the company shelved the project.

Bill Gates can't afford the same luxury of being vague. He and Microsoft are in too deep to blow it. What's called for now is clear speaking, the sooner, the better.

ağ güvenliği

Hacker'ların sayılarının hızla artması ve ağlara sızmak için sürekli yeni ve sinsi gibi yöntemlerin geliştirilmesi, ağ güvenliğini en önemli konulardan biri dueumuna getiriyor. CHIP ağınızı bekleyen tehlikeleri ve bujlardan korunma yöntemlerini anlatıyor.Güvenlik ve kurumsal firewall yazılımları başta olmak üzere ağ topolojisi ve ağ yönetimi(Management) üzerine bilinmesi gereken tüm incelikler bu yazı dizisinde ayrıntılı olarak ele alınacak olup, karşılaşılması muhtemel sorunlara çözüm önerileri getirilecektir.

Ağ Topolojisi
Profesyonel Ağ Yönetimi
Sistem açıklarının kapatılması
Profesyonel Firewall kurulumları
Firewall testleri
Uzaktan Yönetim / Remote Monitoring
Internet - Intranet ve Extranet güvenliği
LAN / WAN
DNS / FTP / MAIL Server problemleri
Bunlara ek olarak 3. parti bir çok yazılımın incelenmesi ve konfigüre edilmesi bu yazı dizisinde ele alınacak konuların ana başlıklarını oluşturmaktadır. 5 bölüm halinde sizlere sunacağımız bu yazı dizisinde, en önemli güvenlik açıklarının neler olduğu, hacker'ların nasıl bloke edileceği ve ağ denetiminin nasıl olması gerektiğine dair önemli bilgiler bulacaksınız. Bunlara ek olarak firewall yazılımları ve ağa yönelik bazı donanımsal ürünlerin testleri de yapılacaktır. Ciddi bir laboratuar ortamında test edilecek bu araçlar mümkün olduğu kadar çok platformda denenerek sizlere lanse edilecektir. Ayrıca ağınızda tam olarak ne olup bittiğine dair detaylı rapor alabileceğiniz yazılım incelemeleri de yine bu seride bulabileceklerinizden bazıları.Öncelikle konuya girmeden önce bu kadar geniş içerikli bir yazı dizisinin hazırlanmasındaki etkenleri kısaca aktarmak ve ağ güvenliğinin nasıl olması gerektiğine dair orta ve ileri düzey metodolojileri tanıtmak istiyoruz.
Ağ güvenliğinin önemi ve tehlikeler
BT ve Sistem yöneticileri (özellikle son 2 yıldır) oldukça büyük zararlara yol açan hacker ve virüs saldırılarına karşı çeşitli güvenlik önlemleri almaya başladılar. Atak davranıp ileriyi görebilenler sistem üzerindeki mevcut yapılandırmayı değiştirirken bir kısmı da ciddi anlamda firewall kurma yolunu seçtiler.Sisteme dışarıdan sızma, tescilli bilginin çalınması, sabotaj, virüsler, denial of service (hizmet durdurma saldırısı), içeriden yetkisiz erişim, ActiveX kontrolleri, kötü niyetli java applet'ler, trojan, polymorphic, macro, boot virüsler ve daha bir çok saldırı yöntemi önlem alınmamış bir sistem üzerinde kesinlikle yıkıcı etki yapacak etkenlerdir. Özellikle dış dünyaya açık güvenliği olmayan bir ağa sahipseniz ve hala çökertilmediyse ya çok şanslısınız ya da sizden bilgi sızdırılıyor anlamına gelir. Bu yazılanlar özellikle orta ve büyük ölçekli firmalar için geçerlidir. Çünkü profesyonel hacker'lar genelde marka özelliği olan, piyasada belirli bir saygınlığa ulaşmış firmaları hedef seçerler, fakat bu hiç bir zaman küçük ölçekli firmalara saldırılmayacağı anlamına gelmez. Sonuç her ne olursa olsun şirket sırları ve veritabanınızın güvenliği açısından server'larınızın mutlaka koruma altına alınması gerektiğidir.Yazının girişinde de belirtildiği gibi, sistem yöneticileri son 2 yıl içinde yapılan başarılı veya başarısız tüm saldırı atraksiyonlarına karşı, iki farklı yöntemden birini tercih etme durumunda kaldılar. İlk yöntem olan sistemi tekrardan yapılandırmak, sadece basit ve bilinen saldırıları bloke ederken, ikinci yöntem olan güvenlik araçları (Firewall) -doğru konfigüre edildiği takdirde- her tür saldırıya karşı etkin koruma sağlayabiliyor.
FireWall: Ağ kontrolü ve trafik kaydının tutulması
Ayrıntılı incelemeye geçmeden önce firewall'un ne olduğuna dair kısa bir tanımlama yapmak gerekir. Firewall (Ateş Duvarı), özel bir ağ'a (ve/veya ağ'dan) yetkisiz erişimleri engelleyen gerek donanımsal, gerek yazılımsal ya da her ikisinin kombinasyonu şeklinde uygulanabilen sisteme adapte edilmiş kurulumlardır. Genelde büyük şirketler ve ISP'lerde kullanılır. Fonksiyonu ağ kontrolünü sağlamak ve bütün elektronik trafiği loglamaktır. Sitem Yöneticisi(Administrator) tarfından belirlenen güvenlik politikası tabanında firewall'dan geçitler ya yasaklanır ya da serbest bırakılır. Firewall bütün iletişim girişimlerindeki kimlik bilgilerini denetler ve varolan geçerli politika ile karşılaştırır. İletiyi kabul etme ya da reddetme kararı sistem yöneticisi tarafından belirlenmiş kurallar doğrultusunda işleme alınır ve daha sonra incelenmek üzere loglanır. Bu tip yazılımlar daha çok büyük ağ'lar ve önemli bir veritabanını korumak için kullanılır. Ve en önemli nokta hiçbir firewall %100 güvenlik sağlamaz. Bu handikap ancak işletim sistemlerinde bulunan açıkların sona ermesi ve geliştirilecek yeni güvenlik yöntemleri ile ortadan kaldırılabilir!Şimdi sırasıyla alınabilecek güvenlik yöntemlerini inceleyip, hangisinin orta ve uzun vadede işe yarar olduğu sorusuna bir açıklık getirelim. Ancak konuya girmeden önce bilinmesi gereken, söz konusu her iki yöntemin de kendi aralarında alt seçeneklere ayrıldığı ve koruma amaçlı yapılacak her hareketin sistemin işleyiş performansını doğrudan etkilediğidir. Üzerinde anti-virüs özelliği bulunan veya ekstra bir anti-virüs programı ile entegre edilmiş tüm güvenlik yazılımları -doğal olarak- maksimum %10'a yakın performans düşüklüğü gösterebilir. Aslında bu kabul edilebilir bir ölçüdür. Fakat son versiyonlarını incelediğimiz bir çok anti-virüs ve firewall yazılımının bunu mümkün olduğunca minimuma indirdiğini tespit ettik.Ortalama işlem yapan bir sistem için %10'luk kayıp normal gözükebilir ancak farklı ünitelere bağlı terminal sayısı yüksek olan server'lara fazladan yük getireceği kesindir. Bu da web'i ağırlıklı olarak kullanan, yoğun e-ticaret yapan, farklı DNS'ler barındıran, kendi iç ağı dışında başka ağlara da bağımlı olan her kurum için hiçte hoş olmayan bir durumdur. Yazı dizimizin sonunda bu amaca yönelik hazırladığımız, önemli ağ işletim sistemleri ve kurumsal firewall programlarını kapsayan bir performans analiz tablosu bulacaksınız.
Sistemin tetkik edilerek tekrar yapılandırılması
Yetkilendirme diagramını kısıtlayarak tekrardan belirleyin, bu davetsiz misafirleri azaltacaktır.Bu yöntem ilk bakışta küçük ölçekli firmaların benimseyebileceği bir seçenek gibi gözükse de aslında ciddi anlamda profesyonellik gerektiren bir olaydır. Bu işi yapacak sistem yöneticisinin sunucu ve ağ üzerindeki mevcut işletim sistemlerini çok iyi tanıması, ne gibi açıklar bulunduğunu iyi analiz etmesi gerekir. Ayrıca yetkilendirme diagramını kısıtlayarak tekrardan belirlemesi, güncellemeleri(up-date) ve yamaları(patch) kısa aralıklarla takip ederek varsa yenilik ve direktifleri (mutlaka vardır) sisteme derhal entegre etmesi gerekir.Yetkilendirme diagramının incelenerek tekrardan belirlenmesi sisteme izinsiz girebilecek davetsiz misafirlerin sayısını azaltacaktır. Ayrıca sisteme giriş yapan kullanıcıların parolaları belirli periyotlarda akılda kalıcı olmayan yeni şifrelerle değiştirilmeli. Bunlara ilave olarak üçüncü parti yazılımlara güvenip, işletim sistemin elverdiği ölçüde, kendini kanıtlamış bir anti-virüs programı kurulmalıdır. Aynı zamanda port denetleyici (port audit) 'de kurubilirsiniz. Ancak bu server üzerinde duraksamalara sebebiyet verecektir. Anti-virüs programları, paylaşılan ağ dosyalarından gelen e-mail ek'lerine ve Internet'ten download edilen her tür dosyaya karşı etkili virüs taraması yapabilen bir yazılım olmalı. Daha da önemlisi tarama sırasında ciddi bir duraksamaya sebebiyet vermemeli.
İyi bir yazılım: SOPHOS ANTİ-VİRÜS
Sophos Anti-Virus Multi-platform seçeneklerinden dolayı kurumsal anti-virüs yazılımlarına iyi bir örnek. Sadece kurumsal ağlar için geliştirilmiş bir anti-virüs yazılımı olan Sophos, yukarıda saydığımız özellikleri üzerinde bulundurması açısından örnek bir program olarak gösterilebilir. Sophos virüs güncellemelerini her ay bir CD üzerinde müşterilerine yolluyor. Bunun yanında web sitesi üzerinden de güncellemeler elde edilebiliyor. Sürekli internet bağlantısına sahip olan firmalar "automated update" seçeneği ile yeni gelen virüslerin güncelleme dosyalarını alabiliyorlar. Bu programın bizi en etkileyen tarafı, Multi-Platform desteği ve istemci-sunucu mimarisi oldu. Çok geniş sunucu ve istemci desteğine sahip Sophos, sunucu tarafında Windows NT/2000, Novel Netware, OpenVMS, OS/2, Lotus Notes ve değişik Unix platformları üzerinde çalışıyor. İstemci tarafında ise tüm Windows familyası, Dos, Macintosh ve OS/2 üzerinde versiyonlar mevcut. Sophos'un kişisel kullanım için herhangi bir versiyonu bulunmuyor. Daha ayrıntılı bilgi ve deneme sürümü için www.sophos.com adresine bakabilirsiniz (Bu programın ayrıntılı incelemesi ilerleyen bölümlerde yayınlanacaktır). Bazı virüs programlarında, URL ve istenmeyen dosya uzantılarını bloke etme gibi ekstra araçlarda bulunmaktadır. Biz burada her ne kadar Sophos'u örnek olarak verdiysek te piyasada bulunan kaliteli bir çok anti-virüs yazılımı her türlü virüs ve trojanı başarıyla bulup yokedebiliyor. Önemli olan sizin zamanında tedbirinizi almış olmanızdır. International Computer Security Association'ın virüs saldırıları ile ilgili 300 BT profesyonelini kapsayan bir araştırmasına göre, katılımcıların %80'i "iş gücü kaybı, kilitlenme ve bozuk dosyaları" en önemli zararlar olarak belirlemiş. Virüs çeşitleri ve çalışma prensipleri hakkında ayrıntılı bilgiyi Sophos'un sitesinden edinebileceğiniz gibi bir başka dev yazılım grubu www.symantec.com veya Computer Associates'ın www.ca.com/virusinfo adreslerini de ziyaret edebilirsiniz.
Ağları bekleyen tehlikeler: Hacker - Trojan ve Virüs kaosu
Bir ağ analizörü (ya da sniffer) kullanan hacker, iletilen verinin tipi konusunda ipuçları sağlayacaktır. Yapım amaçları ve çalışma şekilleri itibariyle trojanlar virüslerden daha tehlikelidir. Ayrıntıya girmeden kısaca tanımlamak gerekirse, trojanlar Truva atı olarakta tanınırlar. ".exe, .vbs" gibi çalıştırılabilir dosyalar yoluyla bulaşan ve bulaştıkları sistemi tüm dünyaya açan casus programlardır. Bu tip programlar sayesinde, yeterli tecrübesi olan herhangi biri bile sisteminize sızıp dosyalarınızı kurcalayabilir, yaptıklarınızı haberiniz olmadan gözleyebilir, ve o andaki ruh durumuna göre canı isterse sisteminize 'format' dahi atabilir. Yukarıda da belirtildiği gibi piyasadaki kaliteli anti-virüs yazılımlarının hepsi tehlikeli trojanları tanıyabiliyor. Ancak anti-virüs yazılımlarının mutlaka güncellenmesi ve varsa (automated-update) seçeneğinin daima açık tutulması gerekir.Tüm bunlara rağmen bir trojanın sisteminize bulaşması bir dosyanın önizleme yapılmasıyla dahi olabilir. Bu yüzden ağ'daki tüm kullanıcıların sözkonusu programlarındaki otomatik önizleme seçeneklerini mutlaka "Disable" konuma getirin. Kolaylık gibi görünen bu özellik, 'gif' sanılan bir dosyayı görüntülemek için çalışır ve bu eğer bir trojansa ve çalıştırıldıysa artık çok geçtir. Sonuç olarak trojanlar executable(çalıştırılabilir) programlardır ve sadece chat odalarında insanların dosya göndermeleri ile bulaşmaz, alınan bir e-mail'deki programı çalıştırarak da trojanlanabilirsiniz!
Sinsi Tehlike: AĞI KOKLAMA (sniffer)
Gereksiz protokolleri kapatın. IP ve MAC bazında protokol ataması yapın. Ne kadar güvenlik tedbiriniz olursa olsun kullanıcıların sitelerden veya FTP'den dowload seçeneklerini kısıtlayın ya da bu protokolleri kapatın. Çok gerekliyse IP ve MAC bazında protokol ataması yapın. External ve Internal servisleri gözden geçirerek sadece gerekli olanları açın. Çünkü hacker'lar genelde açık protokoller ve portlar sayesinde amaçlarına ulaşmaya çalışırlar. Hacker, açık protokoller ve protları bir ağ analizörü ya da sniffer kullanarak kolayca tespit edebilir ve bir kalıp ortaya çıktığında bunun kıstaslarına uygun verileri de ele geçirmiş olur. Bir kullanıcı ağa her bağlandığında aynı veriyi iletiliyorsa bunun kullanıcı adı ve parola olma olasılığı yüksektir ve hacker tarafından deşifre edilmeside an meselesidir. Ancak ağ trafiğini izlemek, ağa fiziksel bir bağlantı gerektirir. Yine de eğer hacker yasadışı etkinliklerini yürütmek için kurallara uygun olarak bağlanmış bir cihaz kullanıyorsa, bulunma olasılığı oldukça düşüktür. Bu aşamada sistem yöneticilerine düşen görev yasadışı sniffer'lara karşı düzenli, ilan edilmemiş denetimler gerçekleştirilmesini sağlamaktır. Özellikle unutulmaması gereken bir gerçek var! İçeriden oluşabilecek saldırılarında en az dış saldırılar kadar sık ve ciddi olabileceği... USA FBI/CBI'ın Bilgisayar suçları ve güvenlik üzerine yapmış olduğu bir ankete göre ağ üzerindeki saldırıların %55'i nin içeriden kaynaklandığı tespit edilmiş.
Trojan mantığını kullanan sadece hacker'lar mı?
Trojan mantığını kullanan sadece hacker'lar değil! Bir çok program bu tip casus script'lerini kendilerine adepte etmiş durumdalar. Birçok shareware ve freeware program casus script'ler içermekte! Örneğin hızlı ve düzgün dosya indirmesiyle tanınan ünlü download aracı Getright bu yazılımlardan sadece biri. Getright, herhangi bir dosyayı download ettiğiniz sırada dosyanın türü ve içeriği konusunda IP numaranızı da kaydederek kendi server'ına bilgi yollayan bir program. CuteFTP ve RealPlayer'da sabıkalılar arasında. Ancak RealPlayer almış olduğu tepkilere karşılık olsa gerek son sürümüne bu işlemin iptal edilebildiği bir seçenek koymuş. Aslında bu tip teknolojilere Aureate/Radiate denmekte. Piyasada şu anda bulunan 700'ün üzerinde shareware ve freeware program bu Aureate/Radiate denen bu teknolojiyi hiç haber vermeden kullanmaktalar. Browser'lar cephesinde de durum pek farklı değil. Örneğin Netscape'in 4.7 sürümünden itibaren eklenen Smart Download seçeneğini kullandığınızda, Smart Download size hiç bir haber vermeden hangi sunucudan (server) hangi dosyayı çektiğinizi, IP numaranızı ve e-mail adresinizi Netscape'e haber veriyor.Hatta bir süre sonra arama modülünün de aynı davranışı sergilediği farkedilince, Christopher Specht isimli bir ABD vatandaşı Netscape'in sahibi AOL firmasını, "kişilerin özel hayatının gizliliğine karışmak" iddiası ile mahkemeye vermişti. Netscape/AOL ikilisinin iddialara cevabı, yarım kalan download'ları daha sonra devam ettirebilmenizi sağlayan Smart Download fonksiyonunun çalışabilmek için bu dasyalara ihtiyaç duyduğu yolunda olmuştu. Ancak bu açıklama, arama fonksiyonunda aynı davranışı sergilemesine yetmedi. Internet Explorer için de aynı durum sözkonusu. Yalnızca metod ve amaç değişik. Internet Explorer'a 5.0 sürümünden itibaren eklenen bu metot, sol tarafta bulunan arama panelinin kullanılması durumunda ortaya çıkıyor. Bu paneli kullanarak herhangi bir arama motorundan sorgulama yaptığınızda vermiş olduğunuz direktifler önce Microsoft'a gidiyor. Microsoft istekleri paketliyor ve verileri tarama yapmak istediğiniz arama motorundan alıyor.Bu işlemin nasıl gerçekleştiğini görmek isterseniz:
Registry'deki HKEY_LOCOL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Search kayıt yolunu inceleyebilirsiniz.
Açık tehlike kaynakları: Portlar
Güvenliğin ihlal edildiği ortamlarda başrolü 'Portlar' oynar! Karşılıklı veri iletişimine dayalı her tür programın ve dolayısıyla trojanların çalışma sistemi portlara dayanır ve açık portlar sayesinde işlevlerini yerine getirirler. Peki nedir bu çok konuşulan portlar? PC'lerde Internet bağlantılarında kullanılmak üzere ayrılmış 65535 adet sanal port bulunur. 0-1024 arasındaki portlar "Well known port numbers" olarak bilinir ve her birinin standart görevleri vardır. Örneğin; 80 numaralı port Web sayfalarını gezerken, 25 numaralı port e-mail gönderirken, 110 numaralı port ise e-mail alırken kullanılır. "Bu standart portlar hakkında başvurabileceğiniz en güvenilir kaynaklar RFC belgeleridir" 1024'ten büyük port numaraları ise programların ve sistemlerin diledikleri gibi kullanmaları için serbest bırakılmıştır. Dolayısıyla herhangi bir standartları yoktur. Sonuç olarak güvenliği ihlal edici ortamlarda 'Portlar' başrolü oynamaktadır ve çok iyi incelenmeleri gerekmektedir.

run command list

clipbrd.exe Pano işlemcisini
cleanmgr.exe Disk temizleyiciyi
ciadv.msc Dizin yöneticisini
charmap.exe Karakterleri
calc.exe Hesap makinesini
diskmgmt.msc Disk yönetimini
devmgmt.msc Aygıt yöneticisini
dfrg.msc Disk birleştiriciyi
eudcedit.exe Karakter imal edebilirsiniz
appwiz.cpl Program ekle kaldırı
access.cpl Erişebilirlik seçeneklerini
accwiz.exe Erişebilirlik sihirbazını
desk.cpl Görüntü özelliklerini
eventvwr.exe Olay görüntüleyicisini
freecell.exe İskambil oyununu açar
fsmgmt.msc Paylaşılan klasörler menüsünü
hdwwiz.cpl Donanım ekleme sihirbazını
iexpress.exe Setup programını
inetcpl.cpl İnternet özelliklerini
intl.cpl Bölge ve dil ayarlarını
joy.cpl Oyun kontrollerini
magnify.exe Büyüteçi
main.cpl Fare özelliklerini
mmsys.cpl Ses ayarlarını
mspaint.exe Paint programını
narrator.exe İngilizce ekran okuyucusunu
ntbackup.exe Yedekleme sihirbazını
nusrmgr.cpl Kullanıcı hesaplarını
osk.exe Ekran klavyesi açar
telnet.exe Telnet'i
spider.exe Kağıt oyunu
gpedit.msc Grup poliçesi
msconfig.exe Sistem ayarlarını
verifier.exe Sürücü monitörünü
drwtsn32.exe Sorun tanıma aracını
dxdiag.exe DirectX sürümünüzü öğrenmenizi sağlar
mobsync.exe Senkronizasyon sağlar
mplay32.exe Media Player'ın çok basit bir halini
odbcad32.exe Database işleme sağlar
packager.exe Obje paketleyiciyi
perfmon.exe Sistem monitörünü
progman.exe Masaüstü yöneticisini
rasphone.exe Erişim defterini
shrpubw.exe Network paylaşımı bilgisini
sigverif.exe İmza denetleyicisini
sysedit.exe Sistem yöneticisini
syskey.exe Şifre databaseini
sndrec32.exe Ses kaydedicisini winver Sürüm Bilgisi
timedate.cpl Tarih ayarlama penceresini
tourstart.exe Windows XP turu başlatır
winchat.exe Windows içinde bulunan chat programını
winmine.exe Mayın Tarlası oyununu
write.exe WordPad'i
wupdmgr.exe Windows güncelleştirme penceresini
explorer.exe Windows Gezgini'ni
powercfg.cpl Güç seçeneklerini
rasphone.exe Ağ bağlantılarını
regedt32.exe Windows Kayıt Düzenleyicisi
regedit.exe Windows Kayıt Düzenleyicisi
sndvol32.exe Ses ayarlarını yapmanızı sağlar

9 Eylül 2007 Pazar

web 2.0

Possibly one of the most useless phrase that's currently doing the rounds is 'Web 2.0'. I call it useless as the term implies that there is a new version of the World Wide Web available, and that us fools left using the old Web 1.0 should probably catch on and make the switch; fortunately this isn't the case.

The term was coined by O'Reilly Media 2.0 back in 2003, and was popularised by the first Web 2.0 convention in 2004 and then a series of successive conferences. Eventually it become adopted by the wider community however when a customer of mine asked me earlier today to define exactly what Web 2.0 meant I was stuck; hence my sudden need to write this article.

I don't feel bad for not knowing how to define the standard as even Tim O'Reilly, the man who is credited with creating the term seems to describe it in an incredibly cryptic and nondescript way. Apparently "Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as platform, and an attempt to understand the rules for success on that new platform."

Right, so in English what exactly does this mean? I think the best way I can describe it is to say that Web 2.0 is a term used to describe a website that has increased the overall functionality of the Web; as such, the term can mean different things to different people. Broadly speaking a website that provides new and interactive technologies such as weblogs, social websites, podcasts, RSS feeds and online web services can fall under the Web 2.0 umbrella.

Personally I think that the phrase is a nonsensical buzzword which has been coined for no real reason than the fact that it sounded catchy. Using the phrase in a meaningful way can be close to impossible since many of the core components of Web 2.0 have existed from the very earliest days of the web.

For educational purposes I should really go over the typical characteristics that are used to make up a typical Web 2.0 site and these are as follows:

- Users being able to contribute to the data on a site; Wikipedia is a good example of this.
- An element of social networking such as MySpace.
- Allow users to use applications entirely through a browser. A web operating system such as Goowy which I reviewed several months back is a good example of this.
- A smart and user friendly interface; often based on a new technology such as Ajax.
- An ability for the user to enhance the application or website as they use it.

Our website design company Refresh Creations often gets people touting that their websites are categorised as Web 2.0, but when you delve deeper it becomes apparent that they have simply installed a trivial feature such as a blog to allow them to make this claim.

Personally, I hate buzzwords and have little time for people that utilize them when pitching ideas or sales pitches to me. Therefore it is somewhat unsurprising that I simply don't 'get' Web 2.0 - due to the lack of set standards to what it actually refers to you can end up making the phrase mean practically anything you want it to.

Even after researching this article for best part of an hour I'm still a little bit unsure as to what the phrase actually means and I don't think this is my failure to grasp the concept but rather the fact that it hasn't been correctly, accurately or solidly defined.

Keyboard Shortcuts

For years I have been perplexed by the people that use their mouse for absolutely everything when are a number of perfectly good keyboard shortcuts that will do the job in a fraction of the time and I believe the reason people do this is that they just don't know there is another way. Why hunt around for an item on a menu bar if you can quickly hit a key and achieve the same effect?

Funnily enough, now that Microsoft have hidden or moved all my commonly used menus in Windows Vista I find myself relying on these short cuts a great deal more than I used to. I'm sure that trying to convey these to you in a list format probably isn't going to make this one of the most exciting Click articles that I've ever written but I do know that it's one of the most useful.

To point out the obvious, these short cuts usually require you to press two keys at once and the ALT, CTRL, Windows and Shift keys are all located down the bottom left hand side of the keyboard. I have split the shortcuts into several sections depending on where they are going to be applied and don't worry about which version of Windows you own as most share the same shortcut keys.

General
Alt+Enter View properties for the selected item
Alt+Esc Cycle through windows in the order they were opened
Alt+F4 Close the active window
Alt+ Spacebar Open the shortcut menu for the active window
Alt+Tab Switch between open windows
Shift+Insert Hold this down whilst inserting a CD and it WON'T autoboot
End Display the bottom of the active window
Home Display the top of the active window
Windows key Displays the start menu
Windows key+D Minimizes all windows
Windows key + E Opens a new Explorer window
Windows key + F Displays the find all files box
Windows key + L Locks your computer
Windows key + R Displays the Run command box

Explorer
Shift+Delete Delete the selected item permanently without placing the item in the recycle bin
Left arrow Collapse the current selection if it is expanded, or select the parent folder
Right arrow Expand the current selection if it is collapsed, or select the first sub folder

Clipboard
Ctrl+C Copy an item to the clipboard
Ctrl+X Cut an item to the clipboard
Ctrl+V Paste an item from the clipboard

Internet Browsing
F11 Full screen mode
Ctrl+Mouse forward Zoom in
Ctrl+Mouse backward Zoom out
Ctrl+0 Reset zoom level
Alt+Home Go to homepage
Ctrl+T Open a new tab
Ctrl+Tab Switch between tabs
Ctrl+W Close tab
Alt+D Go straight to the address bar
Alt+Left Go back to the previously viewed page
Alt+Right Navigate forward through viewed pages

Navigating to menu options within programs is also easy when using keyboard shortcuts. To select the edit menu press 'Alt+E' together, for the file menu press 'Alt+F' and so on then once the menu option has been opened you can navigate around them using the cursor keys then select an option with the enter key.

I did say that this wouldn't be Shakespeare but cut out the list above, have a play around, and I promise you'll find at least some of these key combinations useful. Once you've used them a couple of times it will then become second nature to hit the keyboard shortcut rather than relying solely on your mouse.

7 Eylül 2007 Cuma

Changing dynamic to static URLs

Search engine-friendly links with mod_rewrite
Introduction

One of the most frequent questions posted in the Apache Server forum is "How can I change my dynamic URLs to static URLs using mod_rewrite?" So this post is intended to answer that question and to clear up a very common misconception.

Mod_rewrite cannot "change" the URLs on your pages

First, the misconception: Mod_rewrite cannot be used to change the URL that the visitor sees in his/her browser address bar unless an external redirect is invoked. But an external redirect would 'expose' the underlying dynamic URL to search engines and would therefore completely defeat the purpose here. This application calls for an internal server rewrite, not an external client redirect.

It's also important to realize that mod_rewrite works on requested URLs after the HTTP request is received by the server, and before any scripts are executed or any content is served. That is, mod_rewrite changes the server filepath and script variables associated with a requested URL, but has no effect whatsoever on the content of 'pages' output by the server.

How to change dynamic to static URLs

With that in mind, here's the procedure to implement search engine-friendly static URLs on a dynamic site:


Change all URLs in links on all pages to a static form. This is usually done by modifying the database or by changing the script that generates those pages. PHP's preg_replace function often comes in handy for this.

Add mod_rewrite code to your httpd.conf, conf.d, or .htaccess file to internally rewrite those static URLs, when requested from your server, into the dynamic form needed to invoke your page-generation script.

Add additional mod_rewrite code to detect direct client requests for dynamic URLs and externally redirect those requests to the equivalent new static URLs. A 301-Moved Permanently redirect is used to tell search engines to drop your old dynamic URLs and use the new static ones, and also to redirect visitors who may come back to your site using outdated dynamic-URL bookmarks.
Considering the above for a moment, one quickly realizes that both the dynamic and static URL formats must contain all the information needed to reconstruct the other format. In addition, careful selection of the 'design' of the static URLs can save a lot of trouble later, and also save a lot of CPU cycles which might otherwise be wasted with an inefficient implementation.

An earnest warning

It is not my purpose here to explain all about regular expressions and mod_rewrite; The Apache mod_rewrite documentation and many other tutorials are readily available on-line to anyone who searches for them (see also the references cited in the Apache Forum Charter and the tutorials in the Apache forum section of the WebmasterWorld Library).

Trying to use mod_rewrite without studying that documentation thoroughly is an invitation to disaster. Keep in mind that mod_rewrite affects your server configuration, and that one single typo or logic error can make your site inaccessible or quickly ruin your search engine rankings. If you depend on your site's revenue for your livlihood, intense study is indicated.

That said, here's an example which should be useful for study, and might serve as a base from which you can customize your own solution.

Working example

Old dynamic URL format: /index\.php?product=widget&color=blue&size=small&texture=fuzzy&maker=widgetco

New static URL format: /product/widget/blue/small/fuzzy/widgetco

Mod_rewrite code for use in .htaccess file:

# Enable mod_rewrite, start rewrite engine
Options +FollowSymLinks
RewriteEngine on
#
# Internally rewrite search engine friendly static URL to dynamic filepath and query
RewriteRule ^product/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /index.php?product=$1&color=$2&size=$3&texture=$4&maker=$5 [L]
#
# Externally redirect client requests for old dynamic URLs to equivalent new static URLs
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?product=([^&]+)&color=([^&]+)&size=([^&]+)&texture=([^&]+)&maker=([^\ ]+)\ HTTP/
RewriteRule ^index\.php$ http://example.com/product/%1/%2/%3/%4/%5? [R=301,L]

Note that the keyword "product" always appears in both the static and dynamic forms. This is intended to make it simple for mod_rewrite to detect requests where the above rules need to be applied. Other methods, such as tesing for file-exists are also possible, but less efficient and more prone to errors compared to this approach.

Differences between .htaccess code and httpd.conf or conf.d code

If you wish to use this code in a container in the http.conf or conf.d server configuration files, you will need to add a leading slash to the patterns in both RewriteRules, i.e. change "RewriteRule ^index\.php$" to "RewriteRule ^/index\.php$". Also remember that you will need to restart your server before changes in these server config files take effect.

How this works


A visitor uses their browser to view one of your pages

The visitor clicks on the link Tiny red furry gizmos by GizmoCorp! on your page

The browser requests the virtual file http://example.com/product/gizmo/red/tiny/furry/gizmocorp from your server

Mod_rewrite is invoked, and the first rule above rewrites the request to /index\.php?product=gizmo&color=red&size=tiny&texture=furry&maker=gizmocorp, invoking your script

Your script generates the requested page, and the server sends it back to the client browser

The visitor clicks on another link, and the process repeats
Now let's say a search engine spider visits your site using the old dynamic URL:


The spider requests http://example.com/index\.php?product=wodget&color=green&size=large&texture=smooth&maker=wodgetsinc from your server

Mod_rewrite is invoked, and the second rule generates an external 301 redirect, informing the spider that the requested page has been permanently moved to http://example.com/product/wodget/green/large/smooth/wodgetsinc

The spider queues a request to its URL database manager, telling it to replace the old dynamic URL with the new one given in that redirect response.

The spider re-requests the page it was looking for using the new static URL http://example.com/product/wodget/green/large/smooth/wodgetsinc

Mod_rewrite is invoked, and the first rule internally rewrites the request to /index\.php?product=wodget&color=green&size=large&texture=smooth&maker=wodgetsinc, invoking your script

Your script generates the requested page, and the server sends it back to the search engine spider for parsing and inclusion in the search index

Since the spider is now collecting pages including new static links, and all requests for old dynamic URLs are permanently redirected to the new static URLs, the new URLs will replace the old ones in search results over time.
Location, location, location

In order for the code above to work, it must be placed in the .htaccess file in the same directory as the /index.php file. Or it must be placed in a container in httpd.conf or conf.d that refers to that directory. Alternatively, the code can be modified for placement in any Web-accessible directory above the /index.php directory by changing the URL-paths used in the regular-expressions patterns for RewriteCond and RewriteRule.

Regular-expressions patterns

Just one comment on the regular expressions subpatterns used in the code above. I have avoided using the very easy, very popular, and very inefficient construct "(.*)/(.*)" in the code. That's because multiple ".*" subpatterns in a regular-expressions pattern are highy ambiguous and highly inefficient.

The reason for this is twofold; First, ".*" means "match any number of any characters". And second, ".*" is 'greedy,' meaning it will match as many characters as possible. So what happens with a pattern like "(.*)/(.*)" is that multiple matching attempts must be made before the requested URL can match the pattern or be rejected, with the number of attempts equal to (the number of characters between "/" and the end of the requested URL plus two) multiplied by (the number of "(.*)" subpatterns minus one) -- It is easy to make a multiple-"(.*)" pattern that requires dozens or even hundreds of passes to match or reject a particular requested URL.

Let's take a short example. Note that the periods are used only to force a 'table' layout on this forum. Bearing in mind that back-reference $1 contains the characters matched into the first parenthesized sub-pattern, while $2 contains those matched into the second sub-pattern:

Requested URL: http://example.com/abc/def
Local URL-path: abc/def
Rule pattern: ^(.*)/(.*)$

Pass# ¦ $1 value ¦ $2 value ¦ Result
1 ... ¦ abc/def .¦ - ...... ¦ no match
2 ... ¦ abc/de . ¦ f ...... ¦ no match
3 ... ¦ abc/d .. ¦ ef ..... ¦ no match
4 ... ¦ abc/ ... ¦ def .... ¦ no match
5 ... } abc .... ¦ def .... ¦ Match

I'll hazard a guess that many many sites are driven to unnecessary server upgrades every year by this one error alone.

Instead, I used the unambiguous constructs "([^/]+)", "([^&]+)", and "([^\ ]+)". Roughly translated, these mean "match one or more characters not equal to a slash," "match one or more characters not equal to an ampersand," and "match one or more characters not equal to a space," respectively. The effect is that each of those subpatterns will 'consume' one or more characters from the requested URL, up to the next occurance of the excluded character, thereby allowing the regex parser to match the requested URL to the pattern in one single left-to-right pass.

Common problems

A common problem encountered when implementing static-to-dynamic URL rewrites is that relative links to images and included CSS files and external JavaScripts on your pages will become broken. The key is to remember that it is the client (e.g. the browser) that resolves relative links; For example, if you are rewriting the URL /product/widget/blue/fuzzy/widgetco to your script, the browser will see a page called "widgetco", and see a relative link on that page as being relative to the 'virtual' directory /product/widget/blue/fuzzy/. The two easiest solutions are to use server-relative or absolute (canonical) links, or to add additional code to rewrite image, CSS, and external JS URLs to the correct location. An example would be to use the server-relative link to replace the page-relative link .

Avoiding testing problems

For both .htaccess and server config file code, remember to flush your browser cache before testing any changes; Otherwise, your browser will likely serve any previously-requested pages from its cache instead of fetching them from your server. Obviously, in that case, no code on your server can have any effect on the transaction.

6 Eylül 2007 Perşembe

yeni bir sistem

Fransız devrimi ilk önce kendi çocuklarını yemiştir. Yani ,devrimi başlatanlar , devrim düzeni kurulduktan sonra ilk olarak giyotine kurban edilenler olmuştur.

Yeni bir düzen kurmak her zaman eskinin yıkılmasıyla başlar

Hürriyet gazetesi kurumsal oluşum adıyla yeni bir kimlik inşasına girişti. Bunun ilk kurbanı da E.Çölaşan oldu. Bugüne kadar o gazetenin kimliğini oluşturan bir yazar bu yeni oluşumda gazeteden ilk kovulan isim oldu.

Dikkatimi çeken şey , firmalarda da yeni bir oluşum başladığında bu oluşumdan ilk etkilenenlerin en çok koşturan , en çok çalışan insanların olmasıdır. Bu insanların yıprandığı , motivasyonunu yitirdiği , eski değerleri temsil ettikleri için listenin ilk başlarında yer aldıklarını görmüşümdür.Eski sistemde başarılı olan insanlar eski sistemin yapısına daha uygun olduğu ve yeni sisteme uyum sağlayamayacakları düşünülür.

herkesin öngörebildiği bir talep

Bugün için Tekstil sektörü sıfır ya da çok düşük kar baskısı altında fiyatlandırma yapmaktadır. 1980 li yıllarda elektronik sektöründe de aynı daralmayı yaşamıştık. Önümüzdeki günlerde ise cep telefonu sektörü böyle bir baskı altına girecektir.

Bunun nedeni , talebin birdenbire artması , bu talebi fırsat olarak gören birçok girişimcinin bu talebe yönelmesi , bu talepteki artışın aynı oranda artmamasından dolayı oluşan arz fazlasıdır. Dönem dönem çoğu sektör böyle bir daralmayı yaşar. Örneğin , Kızılırmak suyunun Ankara’ya getirilmesi projesi sürecinde birçok girişimci Çelik boru işinin çok karlı olduğunu düşündü ve çok hızlı bir biçimde birkaç firma kuruldu. Bu ani talep patlamasının yarattığı yanılsama piyasada arz fazlası oluşturacak bir rüzgar yarattı.

Su sıkıntısının yaşandığı dönemdeki olası ani talep patlaması çok önceden öngörülüp konuşulmaya başlanmıştı. Bugünlerde ise Devletin mandıralara ve arazilere verdiği krediler çok konuşulur durumda

Riski, herkes bilinmeyen olarak düşünür ama tam tersi yönde düşünebiliriz ; risk herkesin öngörebildiğidir

Satışta YILMAZ GÜNEY ve KAZANOVA taktiği

Yılmaz Güney’in bir filminde, kadın Güney’i kollarından çekerek otelin kapısından içeri çekiyor. Yılmaz, kapının önünde her zamanki karizmatik bakışlarıyla kadını süzerken kadın üzerini çıkartıp yatağın üzerine uzanıyor ve davetkar bakışlarla Yılmaz’ı yatağına davet ediyor. Kadın, Yılmaz’ın daveti kabul edeceğini zannettiği bir anda Yılmaz beyaz atkısını boynuna dolayarak kapıyı açıyor ve sert bir vuruşla arkasına dönüp çıkıp gidiyor. Ne olduğunu anlayamayan kadın kapının arkasında dizlerinin üzerine çöküp müthiş bir öfkeyle ağlama krizine giriyor.

Yılmaz Güney hiçbir kadını reddetmez ama kendisine sunulanı reddeden o cool duruşuyla her zaman arzu edilen paketlenmiş karizmatik , yalnız ve gizemli bir pazarlama vakasıdır

Müşterinize önemli bir projeden bahsediyorsunuz. Sürekli, sizden ürün alması durumunda sağlayacağı faydaları anlatarak müşteriniz olmasını sağlamaya çalışıyorsunuz. Müşteri ise böyle bir alışveriş anlaşmasına soğuk bakıyor ama reddettiği durumda da sizin ısrarınızla karşılaşıyor. Bu tartışmayı bitirmek için size şöyle bir teklifte bulunuyor. Böyle bir proje için erken ama bana ilk etapta şu kadar sipariş gönderebilirsiniz. Burada iki alternatif vardır : Ya o siparişi alırsınız ya da Yılmaz Güney duruşunu sergileyip siparişi reddedersiniz…

Filmlerde bütün replikler ana karakterin kişiliğini tamamlamak için kullanılarak ortaya karizmatik bir kişilik çıkartılır. Bu kişilik pasif seyircinin normal hayatından olabildiğince uzaklaştırılarak hayranlık duyulacak bir mesafeye itilir. Böylece o kişilik etrafında yaratılan seyirci kitlesi artık o pazarlama vakasının müşterisidir.

Ben her zaman şunun savunurum : saygınlığını yitirdiğiniz bir müşteriye artık mal satamazsınız. Velinimetiniz haline getirip elinizi ovuşturduğunuz bir müşteri bir satıcı olarak sizi ezer. Saygınlığını kazanmadan inandırıcı olamazsınız

Saygınlığınızı zedeleyeceğinizi hissettiğiniz , bütün o satış çabalarınızın 2 adet ürün satmaya dönüştüğü bir durumda Yılmaz Güney taktiği dediğim taktiği uygulayarak kapıdan çıkıp gitmeyi bilmelisiniz.

Kazanova bir pazarlamacı konferansı verseydi sanırım şöyle seslenirdi : Kadını elde etmek için yola çıktığınızda siz ona gidersiniz ; kadının gönlünü fethettiğinizde ise o size gelir. Bütün erkekler hep istediği için kaybeder , ben ise reddetmeyi bildiğim için kazanırım

İstikbal'i kurduran emek , Bellonayı kurduran kapitaldir

Boydak grubunun yöneticisi bir röportajında şöyle diyordu : İstikbal ‘i emekle kurduk ama Bellona’yı parayla… İstikbal markası yılların bir emek birikimiyle oluşmuştu ama Bellona buradan toplanan kapital ile önceden tasarlandı, pazardaki boşluk görülerek oluşturuldu.

Günümüzde rekabet üretimde değil, pazarlamada yaşanmaktadır. Üretim teknolojisinin gelişmesiyle üretim standartlaşmakta kalite , hız gibi faktörlerden daha ziyade pazarlama faaliyetleri daha fazla rekabet üstünlüğü sağlamaktadır.

Eskiden belirli bir iş tecrübesiyle küçük bir KOBİ olarak iş hayatına başlayıp büyüme imkanınız daha fazla idi. Rekabetin yoğun olmaması size böyle bir imkanı sağlıyordu. Eğer elinizde üretim gücü var ise bu size belirli bir boşluk tanıyor, hata yapa yapa , öğrene öğrene ilerleyebiliyordunuz. Şimdi , ise ticaret üretimden değil pazarlamadan başlıyor. Elinizdeki ürün ticaret yapmak için yeterli olmuyor. Pazarı tanımak, buradan yola çıkarak ürününüzü ve üretim sürecinizi bir sanat yapıtı gibi tasarlamak zorundasınız. İşleyiş geriye dönmüş durumda. Bundan sonra bir İstikbal daha çıkmaz , piyasa size bu kadar hata ve deneyim şansı tanımaz…

İnsanların boş zamanını geçirebilecekleri bir oyun inşa edin...

Bir otelim olsaydı, resepsiyonun yanına tasmalı birkaç sevimli köpek koyar , müşterilere istedikleri saatte bu köpekleri dışarı çıkarıp gezdirme imkanı sağlardım. Otel insanlarının , mini bardaki klasik menüden daha fazla ihtiyaç duyduğu şeydir , şevkat…

Otel lobilerinde oturan insanlar genellikle en ufak bir fırsatta muhabbete başlamaya meyillidirler. O kişinin otel odasından çıkıp lobiye inmesi , otel odasında sıkılması bir girişimci olarak aynı zamanda sizin de bir probleminizdir.

İnsanlar filmlerin sahte olduklarını bilmelerine , oyuncuların rol yaptıklarını bilmelerine rağmen yine de ağlar , yine de heyecanlanırlar. Siz yeter ki boş zamanlarını geçirebilecekleri bir oyun inşa edin , kimse sorgulamaz ; sizin oyununuza katılıp sizinle eğlenir vakit geçirirler

referans ne kadar önemli

MEMLEKET NiRE KARDEŞ ?
Küreselleşmeyle birlikte aynı kavramların , sistemlerin , yönetim biçimlerinin tarihsel , teknolojik ve ekonomik gelişmişlikten bağımsız olarak her ülkede kullanıldığını görürsünüz.
Bu çerçecede Verimlilik , performans değerlendirmesi , toplam kalite yönetim , insan kaynakları gibi kavramlar 21. Y.Y. ‘ın ortaya çıkardığı yeni global kavramlardır.
Oysa bu kavramlar üst yapıdaki değişimle ortaya çıkan , değişime cevap verip , değişimi tanımlayan , sistematize eden sonuçlardır
------------- 0 ------------------
Çoğu iş görüşmelerinde karşılaşmışsınızdır : referansınız var mı ?
Bir 10 yıl önce memleketinizi sorarlar ve memleketinize göre çalışkan olup olmadığınızı anlamaya çalışırlardı. Ondan bir 10 yıl önce yemek yemenize bakarlardı.
Birçok şirkette referansın %20-40 ölçüsünde işe alımda etkili olduğunu görürsünüz.
Oysa Türk insanı “kimsenin ekmeğiyle oynama” mantelitesiyle olumsuz yönlerden bahsetmez. Zaten işe başvuran da kötü referans verebilecek nadir olan kişiyi referans vermez.
Öyleyse niçin referans bu kadar önemli?
Tanımadıkları ve iyiye kötüye ait bakış açılarını bilmedikleri bir kişiye niçin karşılarında somut olarak duran bir kişiden daha fazla güveniyorlar ?
Yoksa bu da mantığı sorgulanmayan , geleneksel uygulanagelerek alışkanlık haline gelmiş bir gelenek mi ?
Eğer böyle bir geleneksel bir uygulamaysa insan kaynakları gibi bir sosyal bilimin içerisinde nasıl bu kadar büyük bir yüzdeye ulaşabiliyor?
Yoksa insan kaynakları yeni global bir kavram da biz bu kavramın içini üst yapımıza göre doldurup kendi sorumuzu mu soruyoruz : memleket nire kardeş ?

Erkek aynaya bakar , kadın ...

Erkek aynaya bakar kadın ise diğer bir kadına. Erkek kendi kendine sorar yakışıp yakışmadığını , kadın bir başkasına . Erkek yakışanı alır , kadın kopya eder.Pazarlamacılar kendi aralarında olandan daha fazla bir rekabetin kadınlar arasında yaşandığını görmüş ve bu kopya olayına moda diyerek göz ucuyla yapılana bir meşruiyet kazandırıp bunu bir sektöre dönüştürmüşler.İşte pazarlama budur

e-ticaret hakkında bilgiler

Sanal POS Nedir?

Kredi Kartı alışverişlerimizde kullandığımız POS (Point of sale- ödeme noktası) cihazlarının, e-ticaret için Internet’e uyarlanmış şekline VPOS (Virtual point of sale- sanal ödeme noktası) denir. Internet üzerindeki alışverişlerinizde kredi kartı ile ödeme yapabilmenizi on-line olarak sağlayabilmektedir. Üye işyeri için, müşterinin yaptığı ödemeler VPOS sisteminden yararlanılan bankadaki firma hesabına geçmektedir.

E-ticarte sitesi üzerinden gönderilen kredi kartı bilgilerini ve tahsilat tutarı bilgileri için ilgili bankaların merkezi sistemde provizyon işlemi tamamlanır, üye işyeri satış/tahsilat sistemine provizyon sonucunu (onay veya ret) döndürür.

Üye işyeri sistemi de (Yani firma web sitesindeki VPOS sistemi) provizyon sonucuna göre yapılan işlemlerin geri bildirimini web ortamına aktarır. Bu şekilde işlemin kontrolü ve takibi net bir şekilde sağlanmış olur. Tüm bu işlemler sadece birkaç saniye içinde tamamlanır

Bu süreç esnasında, gerekli kontrol işlemleri dijital olarak gerçekleştirilir. Banka ve üye işyeri arasında dijital imza, dijital sertifika yoluyla yapılan kontrol sonucu gelen teyit bilgisi, bankadan üye işyeri ödeme sistemine provizyon (nakte çevirme işlemi) sonucu olarak geri döner. Bu işlemin ardından müşterinin kredi kartından alışveriş tutarı düşülür ve üye işyerinin bankadaki hesabına geçirilir.

Firmanın kendi web sitesi yoluyla e-ticaret yapabilmesini sağlayan bir yazılım olan VPOS uygulamasına geçmek son derece kolaydır.

Bunun için firmanın ticari hesap açtığı banka ile üye işyeri ve e-ticaret sözleşmelerini imzalaması, ardından da bankaya ait VPOS yazılımını kendi web sitesine kurması yeterlidir.

Güvenlik:

VPOS ’ta internet üzerinden transfer edilen bilgilerin 3. şahısların ellerine geçmesini önlemek için veri transferini halen en güvenli yöntem olarak bilinen SSL 128 Bit güvenlik yöntemini kullanarak gerçekleştirmektedir. E-mağazanın bulunduğu sistemden kredi kartı bilgilerini ve tahsilat tutarı alınarak ilgili bankanın sistemine, SSL 128 Bit güvenlik yöntemi ile internet üzerinden iletir. Bankalar sanal POS hizmeti verecekleri web sitelerinde SSL 128 bit'lik şifreleme şartını aramaktadırlar.





SSL Sertifika Maliyetleri ve Nerden Alınır?
SSL Sertifika maliyetleri, sertifika sağlayan kuruma ve sertifika özelliklerine göre değişmektedir. Her yıl SSL sertifikası için 50$ ile 700$ aralığındaki bu ücreti vermeniz gerekmektedir. SSL sertifikası, e-ticaret sitesini yayınladığınız sunucu için olduğundan, sunucu sertifikası türünden bir sertifika almalısınız.

Ayrıca SSL sertifikası kullanmak için mutlaka sabit ip kullanılmalıdır. Sabit IP’i bankalar ile yapılan anlaşma sırasında, bankanın kullandığı firewall üzerinden geçebilmek için bildirilmesi gerekmektedir. Bu sayede yalnızca bu IP üzerinden bildirilen istekler değerlendirilmektedir. Sabit ip 'de yaklaşık 30$ civarındadır.

Bankalar SSL sertifikaları için bir herhangi bir marka tercihinde bulunmamaktadır. Dolayısıyla maliyet açısından uygun bir sertifika alınmalıdır. Sertifika sağlayıcılardan tavsiye edebileceğim bir site: http:\\www.globalsign.com.tr





Sanal POS’un Avantajları



Avantajların bazıları ;

· Sanal POS işlemlerini yapmak için birden fazla programlama türünü destekler. (Web Servisleri, Windows DLL, Java, CGI, C)

· Hukuksal olarak gün geçtikçe desteği artmaktadır. ( http://www.tbb.org.tr )

· Özellikle perakende (B2C) satışlarda %35-40 arasında artış sağlamaktadır.

· Firmanın yerel bir pazardan daha geniş pazarlara, hatta yurtdışına açılmasına olanak sağlar.

· Firma imajını ve rekabet gücünü olumlu yönde etkiler.

· Geleneksel satış sürecinden çok daha kısa sürelerde alışveriş olanağı tanır. Zamandan yapılan bu tasarruf, müşteri memnuniyeti ve bağımlılığını arttırır.

· Farklı işletim sistemi, web server, programlama ortamlarına tam olarak entegrasyonunu sağlamak mümkündür. (MS Windows NT, MS Windows 2003, HP-UNIX, SCO-UNIX, Linux, AIX, Solaris )

· Sanal POS'la yapılan alışverişlerde güvenlik son derece yüksektir.

· Satışlarla ilgili bilgileri veri tabanına aktarır ve saklar. Aynı database’i kullanarak CRM uygulaması ile entegrasyon sağlanabilir. Bu sayede kullanıcı bilgilerini listelenmesi ve raporlama sağlanabilir.





E-ticaret sitesi oluşturabilmek için işlem sırası :

1- Sitenin tasarımının ve programlamasının e-ticaret için hazırlanması

2- SSL için sabit bir IP almak

3- 128 bitlik SSL sertifikası almak

4- Uygun bir banka ile Sanal POS için anlaşmak

5- Bankanın verdiği kodları siteye adapte etmek

6- Siteyi test aşamasına s****k

7- Ve siteyi yayına açmak



Banka Başvuru adımları nelerdir?

Önemli: Başvurular e-ticaret sitesi sahibi olana firmalar tarafından yapılmaktadır.

Başvurunuz Banka tarafından yaklaşık 7-15 gün içinde onaylanır. Onaylanma sürecinde alışveriş sitenizin çalışan hali banka tarafından kontrol edilecektir. (injection testi, vb)
Başvurunuz öncesinde sitenizin alışveriş sepeti uygulamasının tamamlanmış olması ve sitenizin kontrol amaçlı gezilebilir duruma gelmiş olması gerekmektedir.
Bu onayın ardından Sanal POS hesabınız tanımlanır.
Tanım yapılır yapılmaz bildirmiş olduğunuz e-mail adresiniz ve telefon numaranız üzerinden sizinle irtibata geçilecek ve gerekli bilgiler size iletilecektir.
Tanımlanan kullanıcı adını ve şifreyi kullanarak Bankanın Sanal POS sayfalarına giriş yaparak gerekli teknik bilgi ve yazılımları indirebilirsiniz.
İndirdiğiniz yazılımları sunucunuza kurduktan sonra işlem geçirmeye başlayabilirsiniz. Bu etap, sisteminiz ile gerçekleştirmek istediğiniz entegrasyonun boyutlarına göre 15-20 dakikadan 4-5 saate kadar sürebilir.
Örnek : Akbank'ın Sanal Pos ön başvuru sayfası: http://www.akbank.com/eticaret/m02_07.asp





BANKA SİSTEMLERİ



Bankalar farklı sistemleri kullanmaktadır. Aşağıdaki şekilde hangi bankanın hani yapıyı kullandığını görebilirsiniz.






Referanslar:

http://www.est.com.tr/referanslar01.asp

http://www.est.com.tr/referanslar02.asp

http://setmpos.ykb.com/PosnetF1/index.html

http://www.vakifbank.com.tr/eticaret/vpos724.html

http://www.bankasya.com




EST POS SİSTEMİ
Gerekli bilgiler
Bankaların sanal posu EST firması tarafından yayınlanan epayment.ddl kütüphanesinin sunduğu işlemler yardımı ile gerçekleştirilir. Şu anda elimizde bulunan epayment.dll .net ile yazılmış olup versiyon numarası “1.0.1517.23556” dır. EST’den yeni versiyonlar geldikçe eski versiyonun yenisi ile güncellenmesini öneririm.

EST firmasından bağlantıya geçilip yardım alınabilecek adresi şudur;

Web :http://www.est.com.tr



Müşteri tarafından yapılması gereken işlemler
Sanal pos testlerinin başlayabilmesi için müşterinin bankadan ilgili kişilerle konuşup sanal posta kullanılan bazı bilgileri alıp Firma’ya iletmesi gerekmektedir. Bu bilgiler;



Parametre
Açıklaması

Host
Banka sunucusu adresi

ClientId
Sayısal bir değer olan üye işyeri numarası

Name
Üye işyeri kullanıcı adı

Password
Üye işyeri şifresi




Bu bilgiler alındıktan sonra gerekiyorsa EST ile iletişe geçilip kodlama işlemine başlanır.

Firma tarafından yapılacak tanımlamalar ve işlemler
Öncelikle EST’den temin edilen test host adresi, clientId, password ve username bilgileri ile test posunda test işlemi gerçekleştirilir. Eğer onay alınıyorsa müşteriden gelen bilgiler ile gerçek işleme geçilir.

ClientId, name ve password bilgileri ile epayment.dl’lin ilgili alanlarını veri tabanında pos bilgilerinin bulunduğu tabloya şifreli olarak koymamız gerekiyor. Burada uygulanan şifreleme 2 yönlü olmalıdır, bu bilgiler kullanılacağı zaman deşifre edilir. Bu tabloda bulunması gereken alanlardan biri de host adresidir. Host adresi, clientId, password ve username test ve gerçek ortam için farklı olduğundan production ortamına geçerken adres bilgisi yeniden düzenlenmelidir.

Önemli: Dikkat edilmesi gereken nokta, Banka sanal posu için herhangi bir sabit IP tanımlamasının yapılması gerekmemektedir. Yoksa test işlemleri sırasında bankanın firewall’ında tanımlı olmayan sabit IP’miz olmadığı için, yaptığımız bütün istekler olumsuz geri dönecektir.



Örnek uygulama:

cc5payment mycc5pay = new cc5payment();



mycc5pay.host = “hostname”;

mycc5pay.name = “name”;

mycc5pay.password = “password”;

mycc5pay.clientid = “clientId”;



mycc5pay.orderresult=0;



mycc5pay.cardnumber = “CCNumber”;

mycc5pay.cv2 = “CCVNumber”;



mycc5pay.expmonth = “01”;

mycc5pay.expyear = “06”;



mycc5pay.taksit = “3”;

mycc5pay.subtotal = “1.43”;

mycc5pay.currency = "949"; // For YTL

mycc5pay.chargetype = "Auth";



mycc5pay.bname = “Sender name”;

mycc5pay.baddr1 = “Sender Address”;

mycc5pay.baddr2 = “senderEMail”;



result = mycc5pay.processorder();

error =mycc5pay.errmsg;

oid = mycc5pay.oid;

approved = mycc5pay.appr;



if(result == "1") // banka ile bağlantı sağlandı

{

if(!approved.Equals("Approved"))

{

return ; // problem with cc

}

}

else

{

return;

}





Pos parametreleri
VPOS isteği sırasında gönderilmesi gereken parametreler şunlardır;




Gönderilmesi zorunlu alanlar:
Host :

Banka sunucusu adresi, test ve production ortamına göre farklı değer almaktadır.

Test host bilgisi : "https://cc5test.est.com.tr/servlet/cc5ApiServer"

Production host bilgisi : “vpos.est.com.tr”

Name :

Üye işyeri kullanıcı adı, test ve production ortamına göre farklı değer almaktadır.

Test ve production için bu bilgi banka tarafından müşteriye yollanan sanal pos

dokümanından elde edilir.

Password :

Üye işyeri şifresi, test ve production ortamına göre farklı değer almaktadır.

Test ve production için bu bilgi banka tarafından müşteriye yollanan sanal pos

dokümanından elde edilir.



Clientid:

Üye işyeri numarası, test ve production ortamına göre farklı değer almaktadır.

Test ve production için bu bilgi banka tarafından müşteriye yollanan sanal pos

dokümanından elde edilir.

Orderresult :

0 olursa gerçek işlem 1 olursa test işlemi yapar. İşlemlerimizde bu alana 0 değerini

vermekteyiz.

Chargetype:

Auth PreAuth PostAuth Credit Void olabilir ,

Auth : satış

PreAuth : on otorizasyon

PostAuth : son otorizasyon, preauth yani ön otorizasyon işleminin capture edilmesi

Credit : iade

Void : iptal işlemlerinin yapılmasını sağlar

Cardnumber:

Kredi kartı numarası

Expmonth:

Kredi kartı son kullanım ayı , iki haneli sayı olarak girilmesi gerekiyor.

Expyear:

Kredi kartı son kullanım yılı , yılın son iki hanesi sayı olarak girilmelidir.

CVV2:

CVV veya CVC2, kredi kartın arkasında yer alan üç haneli güvenlik numarasıdır.

Subtotal:

İşlem tutarı , küsuratlı yabancı para miktarları için 0 dan sonra iki hane girilmeli

"10.95" gibi . YTL için “1.5” şeklinde değer verilebilir.

Currency:

Parabirimi (YTL icin "949", DOLAR için "840", EURO için "978" girilmelidir).





Gönderilmesi isteğe bağlı alanlar:

Parametre
Açıklaması

Sipariş numarası
Bu alanda girilen değeri tekrar kullanamazsınız, “unique” olmalıdır, bos gönderilirse sistem tarafından üretilir.

Taksit sayısı
Taksit parametresi hiç gönderilmez ise peşin işlem yapılır.

Işlem numarası
sistem tarafından üretilir. Bos gönderilmesi tavsiye olunur.

Ip
Sipariş veren müşterinin ip adresi

Userid
Sipariş veren müşterinin kullanıcı numarası

Email
Sipariş veren müşterinin Email adresi

Phone
Sipariş veren müşterinin telefon numarası




Geri Donen parametreler:


processorder() :

işlemin bankaya ulaşıp ulaşmadığını döndürür.



Appr :

Aşağıdaki değerlerden birini döndürebilir :

Approved : ( işlem basarili )

Declined : ( işlem basarisiz)

Error : ( işlem hatalı )



Errmsg:

işlemde hata olması durumunda hatanın nedeni yazılır.



Extra("fieldname") :

FieldName adındaki Extra field in değerini döndürür.





Geri Dönen Diğer Alanlar:

Parametre
Açıklaması

Sipariş numarası
işlemi yaparken sipariş numarası vermemişseniz otomatik olarak atanan sipariş numarası bu alan içinde geri döner , eğer önceden verilmişse verilen değer döner.

Groupid
Grup numarası.

Transid
İşlem numarası.

Code
Provizyon numarası.

Refno
Referans numarası.

Err
Bankadan gelen işlem kodu.






Prosess işlemi
Gerekli alanlar doldurulduktan sonra mycc5pay.processorder() komutu ile ödeme işlemi yapılır ve sonuçlar belirtilen alanlarda donulur.processorder dan dönen ( aspx içinden aşağıdaki şekilde ulaşılabilir. )

retval = mycc5pay.processorder()



İşlemi yapmaya çalışarak, işlemin bankaya ulaşıp ulaşmadığını döndürür. Sonuç olarak 1 yada 0 döner.

1 :
Obje banka ile konuştu, konuşma mümkün olmuş olsa dahi işlem basarili olmamış olabilir; işlemin başarılı olduğunu anlamak için mycc5pay.appr’nin değerinin "Approved" olması gerekiyor.

0 :
Mesaj transferi gerçekleşemedi.


mycc5pay.appr ise aşağıdaki değerlerden birini döndürebilir :

Approved
: işlem basarili

Declined
: işlem basarisiz

Error
: işlem hatali


Dönen değere göre işlemin gerçekleştirilip gerçekleştirilemeyeceği belli olur.



Loglama

Yapılan bütün olumlu yada olumsuz geri dönen işlem değerleri veritabanına eklenir. Bu log’lama işleminin amacı daha sonradan yapılan ödeme işleminin takip edilmesi yada ödeme işlemin geri alınması içindir.







HSBC POS SİSTEMİ
HSBC bankası sanal posu EST firması tarafından yayınlanan epayment.ddl kütüphanesinin sunduğu işlemler yardımı ile gerçekleştirilir. Farklı olarak bir ticket sistemi içermektedir.





Ticket Sistemi
HSBC sanal posuna işlem göndermeden önce sistemden ticket almak gereklidir. Alınan ticket sanal pos apisi içerisindeki kart numarası alanına yazılır. Ticket 1 saat içerisinde kullanılmalıdır, bu süre sonunda otomatik olarak geçersiz duruma getirili. Bu ticket güvenlik amacı ile üretilmektedir ve her seferinde bir kullanımlık ticket üretilir.



Örnek uygulama:

Pan Değerini döndüren örnek method

public string GetPan(string clientid, string ccno, string cv2, string ExpYear, string ExpMonth, string type, string installment )



{

string result = string.Empty;

string pan = string.Empty;

StreamWriter swr = null;

StreamReader sr = null;



try

{

string message = "clientid=" + clientid + "&pan="+ccno+"&cv2="+cv2+"&Ecom_Payment_Card_ExpDate_Year="+ExpYear+"&Ecom_Payment_Card_ExpDate_Month="+ExpMonth+"&txtype="+type+"&taksit=" + installment;



WebRequest request = HttpWebRequest.Create("https://vpos.advantage.com.tr/servlet/cardgate");

request.Method = "POST";

request.ContentLength = message.Length;

request.ContentType = "application/x-www-form-urlencoded";



swr = new StreamWriter(request.GetRequestStream());

swr.Write(message);

swr.Close();



HttpWebResponse response = (HttpWebResponse)request.GetResponse();



sr = new StreamReader(response.GetResponseStream());



result = sr.ReadToEnd();

sr.Close();

response.Close();



request = null;

int first = result.IndexOf('"', result.IndexOf("value", result.IndexOf("pan"))) + 1;

int last = result.IndexOf('"', result.IndexOf('"', result.IndexOf("value", result.IndexOf("pan"))) + 1);



pan = result.Substring(first, last - first);

}

catch

{

pan = String.Empty;

}

return pan;

}



Ticket değeri alabilmek için; aşağıdaki alanlar https://vpostest.advantage.com.tr/servlet/cardgate adresine post edilmelidir.






Gönderilen Parametreler


Parametre
Açıklaması

Pan
Kart numarası

Clientid
Banka tarafından verilen sanal pos mağaza numarası

cv2
CVV2 Güvenlik Kodu

Ecom_Payment_Card_ExpDate_Year
Son Kullanma Yıl YY formatında

Ecom_Payment_Card_ExpDate_Month
Son Kullanma Ay MM formatında

ReturnURL
Üye işyerinin geri dönen bilgileri alacağı adres

Sessionid
İşleme ait session id





Geri Dönen Parametreler


Parametre
Açıklaması

Pan
ticket değeri. Bu bilgi işlem post edilirken sanal pos apisi içerisindeki kart numarası alanına yazılır.

Pan değerinin ilk 6 hanesi kartın BIN numarasını verir.

Örnek olarak aşağıdaki pan değerinde BIN numarası (Kart numarasının ilk 6 hanesi) 424242’dir.



424242:F89DFF8B4AEAFFD671DBC4B25B:4926:



Sessionid
İşleme ait session id




Gerekiyorsa bildirilen adrese üye işyerine özel veriler de post edilebilir. Bu durumda bu veriler işlenmeden ReturnURL adresine geri gönderilir.





Process İşlemi

GetPan“ Function’undan geri gelen cevap “string” türde bir ticket değeridir. Kredi Kartı numarası olarak geri gelen bu string değer kullanılır.



Örnek Uygulama

cc5payment mycc5pay = new cc5payment();



mycc5pay.host = “hostname”;

mycc5pay.name = “name”;

mycc5pay.password = “password”;

mycc5pay.clientid = “clientId”;

mycc5pay.orderresult=0;



mycc5pay.taksit = installment;



pan = GetPan(this._clientId, CardNumber, CVV, CardExpireYear, CardExpireMonth, ChargeType, installment);



mycc5pay.cardnumber = pan;



mycc5pay.taksit = “3”;

mycc5pay.subtotal = “1.43”;

mycc5pay.currency = "949"; // For YTL

mycc5pay.chargetype = "Auth";



mycc5pay.bname = “Sender name”;

mycc5pay.baddr1 = “Sender Address”;

mycc5pay.baddr2 = “senderEMail”;



mycc5pay.processorder();



Result = mycc5pay.appr;

Oid = mycc5pay.oid;

Error = mycc5pay.errmsg;



Geri gelen parametreler yorumlanarak işlem gerçekleştirilir.



Hata durumları ve izlenecek yollar

insufficient permission error hatası:

Production ortamında gerçek kredi kartı ile işlem yapılırken kullanıcı bilgileri (clientId, username, password) bilgilerinden biri hatalıdır.

Processorder sonucu 0 olması:

Banka ile bağlantı kurulamadığını gösterir bunun nedeni; host adresinin yanlış girilmiş olması, firewall üzerinden hosta erişimin yapılamaması yada eğer posun Ip tanımlaması zorunluluğu varsa yanlış Ip tanımlamasından kaynaklanıyor olabilir.

Production ortamında yapılan testlerde Invalid account number hatası alınması

İşlem yapılan kartın hsbc kart olması zorunludur diğer banka kartlarıyla işlem yapılamaz.

kaynak : yazgelistir.com