YAZ.02 — Web Siteleri Standartları
Açıklama
Bilgi ve iletişim teknolojilerindeki hızlı gelişmeler yeni bir çağ yaratmıştır. Bu durum yazılım ve sistem güvenliği, yeni medya standartları ve hukuki süreçler konularında yeniden yapılanmayı zorunlu hale getirmiştir.
Şirketin hem intranet hem extranet üzerinde gelişen yeni teknolojilere uyumu hususunda eski doğru bilinenlerin yanında yeni doğruların oluşması bu çalışmanın hazırlanmasını tetiklemiştir.
Yazılım standartları ve sistem güvenliği yanında günümüzün hızla yükselen olgusu sosyal medyanın da şirket için tanıtım, çalışan kullanımı ve hukuki yaptırımlar bazında değerlendirilip belli standartlara bağlanması kaçınılmaz olmuştur.
Bu doküman yazılım geliştirme ve güvenliği, sistem altyapıları ve güvenliği, mobil uygulamalar, yönetim süreçleri ve hukuki gereksinimler ile sosyal medya konularında bir rehber niteliği taşımaktadır.
Standartlar
1. Yönetim Süreci ve Hukuki Gereksinimler
Web siteleri süreç yönetiminde standartların belirlenmesi, gerekli hukuki araçların kullanımı ve tedbirlerin alınması amaçlanmaktadır. Bu kapsama web siteleri (intranet-extranet), mobil ve sosyal medya dahildir.
Genel
- Şirkette web sitelerinin sorumluluğunu üstlenecek bir kişi atanmalıdır. Web sitesi sorumlusu, şirketin tüm (internet ve intranet) web sitelerinin envanterini oluşturmak ve güncel tutmakla yükümlüdür. Atanan sorumlular şirketin bilgi teknolojileri yönetimine bildirilmeli ve şirket içinde paylaşılmalıdır.
- Yeni web sitelerinin veya mevcut web siteleri üzerinde yapılan yazılım ve altyapı değişikliklerinin canlıya alma onay sürecinde web sitesi sorumlusunun onayı alınmalı veya teknik ayrıntı içeren durumlarda sorumlu bilgilendirilmelidir.
- Tüm alan adlarının envanteri tutulmalı, maliyet ve güncellik yönetimi yapılmalıdır.
- Genel kullanıma açık web sitelerinde kullanım şartları ve gizlilik politikasını bildiren sayfalar bulunmalıdır.
- Şirket ve marka web sitelerinde kurum, kuruluş, organizasyon ya da kişileri zedeleyici, yaralayıcı, yasalara aykırı içerikli sayfalar bulunmamalıdır.
- Genel ahlaka aykırı tüm yetişkin sitelerine, kumar sitelerine, güvenliği tehlikeye sokacak hacking sitelerine ve şirket tarafından sakıncalı kabul edilebilecek diğer sitelere erişim yasaktır. Şirket web sitelerinden bu tür sitelere erişim/link verilmemelidir.
- Kurumsal kimlik rehberi ve marka el kitabına uygun olarak şirket logo ve font kullanımları kontrol edilmeli, dış kaynak kullanılıyorsa takibi yapılmalıdır.
İntranet
- Şirket intranetinde departmanlara ait sayfalar yer alıyorsa her departmandan, departmanı ile ilgili sayfanın yönetimini yapacak personel belirlenmelidir.
- İntranette duyuru panosundaki bilgiler İnsan Kaynakları, BT veya yetkilendirilmiş personelce yayınlanmalıdır.
- İntranet yetkili kişilerin kullanımına özgü bir araçtır. İnternetin aksine, intranet üzerindeki bilgiler sadece yetkili kişilere iletilebilir. Çalışanlar uygun iç kanallardan (İnsan Kaynakları, BT) geçirip gerekli onayları almadan intranet üzerinden edindikleri bilgileri üçüncü şahıslara aktarmamalıdır.
E-Ticaret
E-ticaret siteleri, müşterilere erişimde ve hizmet sağlamada hassas noktada olduğu için asgari olarak aşağıdaki süreçleri desteklemelidir.
- Ön bilgilendirme formu olmalı, onaylanmadan satış sonlandırılmamalıdır.
- Satış sözleşmesi olmalı, onaylanmadan satış sonlandırılmamalıdır.
- Ön bilgilendirme formu ve satış sözleşmesi e-posta ile gönderilebilir, çıktısı alınabilir ve sonradan kullanıcı tarafından erişilebilir olmalıdır.
- İptal ve iade taleplerinde müşteri ile yapılan her türlü yazılı ve sözlü iletişim kayıt altında olmalı ve sonradan erişilebilmelidir.
- İade veya iptal talebi geldiğinde kanuni süre içerisinde para iadesinin yapılabilmesi için gerekli tüm altyapı hazırlanmalı ve süreçler buna uygun tasarlanmalıdır.
Dış Kaynak Kullanımı
- Bir firmaya hosting için verilmiş olan veya bir ajansa görsel tasarım, içerik yönetimi ve dış kaynak yönetimi anlamında devredilmiş olan web siteleri veya sosyal medya hesapları için çalışma şartları (veri güvenliği, gizlilik, hizmet sözleşmesi takibi, erişim kontrolü, paylaşımlı ise yönetim metodu, 7/24 kesintisiz çalışma, hatasız içerik vb.) belirlenmiş ve şartname ile oluşturulmuş olmalıdır.
İçerik Yönetimi
- Web sitelerinin içeriği yalnızca şirket içinden yönetilebilmelidir. Web sitelerinin içerik düzenleme ekranlarına ve sistem yönetimi ekranlarına şirket dışından erişim engellenmelidir.
- Web sitelerine içerik eklenirken, yalnızca şirket açısından yayınlanmaya müsait ve kanunlara uygun içeriğin eklenmesine yönelik standart bir süreç işletilmelidir.
- Web sitelerinin ve online uygulamaların içeriği, kullanıcılar açısından tehlikeli olabilecek dosyalar ve kodlar içermediğinden emin olunması için düzenli olarak taranmalıdır.
- Web siteleri üzerinde yayınlanan dokümanların, yayınlanmadan önce hassas bilgiler içermediğinden emin olunmalıdır. Bu amaçla, bilgiler yayınlanmadan önce meta verilerinin temizlenmesine yönelik bir işlem gerçekleştirilmelidir.
İyi Uygulama Örnekleri
- Şirket ve marka web sayfalarında kişisel reklam, ilan vb. yer almaması önerilmektedir.
- Sosyal medya kullanımına ilişkin bir bilgilendirme dokümanı/taahhütname hazırlanması önerilmektedir.
2. Sistem Altyapısı ve Güvenliği
İnternet ve intranet web sitelerinin ağ, veri tabanı ve sunucu taraflarındaki güvenlik ayarları, sıkılaştırma, güncelleme, yedekleme ve kullanıcı yönetimine dair standartlar bu başlıkta listelenmektedir.
Genel
- Veri tabanı olarak, desteği kaldırılmamış veya son iki sürüm olması şartıyla sadece Microsoft SQL Server veya Oracle kullanılmalıdır. PHP altyapısı kullanan sayfalarda MySQL kullanılabilir.
- Üretici firma tarafından desteği devam eden işletim sistemi ve uygulama sunucusu (Application Server) kullanılmalıdır.
- Açık kaynak uygulama sunucusu (Open Source Application Server) kullanılıyorsa en güncel son 2 sürüm kullanılmalıdır.
- Uygulama sunucularındaki admin ekranları varsayılandan farklı port üzerinden tanımlanmalı, kurulumla gelen varsayılan özellikler kullanılmıyorsa kapatılmalıdır.
- Saldırı veya çökme durumları için acil kurtarma planlarının hazır tutulması ve belirli aralıklarla gözden geçirilmesi gerekmektedir.
- Yedekleme (backup) zamanları sistemin önemine ve kullanım durumuna göre kurgulanmalıdır.
- Uygulama sunucuları üzerindeki sistemsel değişiklikler loglanmalı, bu loglar belirli periyotlarla yedeklenmelidir.
- Güvenlik yamaları test edildikten ve yedekleme yapıldıktan sonra periyodik olarak uygulanmalıdır.
- Web sunucuları üzerindeki kullanılmasına gerek olmayan Telnet, SSH, FTP, SMTP, NNTP, RDP ve diğer uzaktan kontrol yöntemleri gibi servisler kapatılmalıdır.
- Sunucular üzerinde, üretici firma tarafından önerilen güvenlik parametreleri uygulanmalıdır.
- Sunucular için üretici firmalar tarafından yayınlanan güvenlik yamaları takip edilerek zaman geçirmeden yüklenmelidir.
- Web sunucusunun iç IP adresi, yazılım sürümü ve diğer bilgilerinin dışarı ifşa edilmemesi için sunucular uygun şekilde yapılandırılmalıdır.
- Web sunucuları üzerinde dizin listeleme engellenmelidir.
- Web sunucuları üzerindeki tüm dosyaların okuma, yazma ve çalıştırma yetkileri uygun şekilde yapılandırılmalıdır. Gerekmedikçe tüm kullanıcılara çalıştırma ve okuma yetkisi tanımlanmamalıdır.
- Web sunucuları üzerindeki .htaccess, php.ini, web.config gibi sunucunun çalışmasını doğrudan etkileyen dosyaların konfigürasyonları güvenli iyi uygulamalarla uyumlu şekilde yapılmalı, sunucu üzerinde gerek duyulmayan riskli işlemlerin yapılması engellenmelidir.
- Sunucu üzerindeki TLS sertifikalarının yalnızca yetkili personel tarafından yönetilmesi sağlanmalıdır. TLS sertifikalarının ve özel anahtarlarının, sunucunun ilgili alanı dışındaki kopyaları (e-posta vb.) imha edilmelidir.
- Web uygulamasına kullanıcı ve admin erişimlerinin trafik bilgileri, yürürlükteki 5651 sayılı kanuna uygun olarak kayıt altına alınmalı ve saklanmalıdır.
- Administrator hesabı yeniden adlandırılmalı ve admin şifreleri şirket BT standartlarına uygun olarak yönetilmelidir.
- Sunucuların internet bağlantıları olmamalıdır (izin verilenler dışında).
- İnternet üzerinden hizmet verecek sunucular DMZ bölgesinde barındırılmalıdır.
- Network altyapısı segmentlere ayrılmış olmalı, ayrıca sunucular ile kullanıcılar farklı network'lerde firewall/switch tarafından bölünmüş olmalıdır.
- Kullanıcılar sadece erişime ihtiyaçları olan sunuculara, sadece kullanmakta oldukları portlar ile erişim sağlayabilmelidir.
- Group Policy ile "Bu bilgisayara ağ üzerinden eriş" seçeneği Everyone grubundan alınmış olmalıdır.
Internet Web Sayfaları
- Extranet sistemler ve dış ağlar üzerinden haberleşen sistemler için IP kısıtlama yapısının kurgulanması gerekmektedir.
- Periyodik olarak penetrasyon testleri yapılmalıdır.
- DMZ bölgesinden sunucu network segmentine standart portlar yerine özel portlar tanımlanmalıdır.
- DMZ bölgesinde bulunan web sunucularında dosya paylaşımı yapılmamalıdır.
- Web uygulama sunucusu üzerinden doğrudan iç sisteme erişim firewall vasıtasıyla engellenmelidir.
- Güvensiz bilgi erişimi gerçekleşmemesi için, web uygulamaları ile diğer bilgi kaynakları arasındaki veri trafiği kısıtlanmalıdır. DMZ alanındaki web sunucularının, iç ağdaki veya DMZ alanındaki diğer sunucular üzerinde çalıştırabilecekleri komutlar kısıtlanmalı, yalnızca amaca uygun şekilde veri sorgulamaya yönelik işlemlere izin verilmelidir.
- Sunucuların kapasite ve performans kullanımı düzenli olarak gözden geçirilmelidir. İtibar riskini asgariye indirmek için sunucu kapasitesi, en yoğun zamandaki kullanımı karşılayacak şekilde yapılandırılmalıdır. Kamunun ilgisini çekebilecek bir olay, yeni bir hizmet lansmanı veya kampanya öncesinde kapasite riskleri ayrıca değerlendirilmeli ve kapasite sıkıntısı yaşanmaması temin edilmelidir.
Kullanıcı Yetkilendirme
- Her kullanıcının standartlaştırılmış isimlendirme kuralına uygun kullanıcı adı kullanması ve grup bazlı kullanıcı açılmaması gerekmektedir.
- Active Directory üzerinde bulunan kullanıcı adları için File Server, SharePoint doküman bankaları ve listeleri için grup bazında yetkilendirmeler yapılmalıdır.
İyi Uygulama Örnekleri
Internet web sayfaları
- Bilgi paylaşımı yapması gereken web siteleri için RSS desteği olmalıdır.
- Engelli dostu site tasarımı mümkün olduğunca sağlanmalıdır.
- Veriye erişimde web servislerinin kullanılması önerilmektedir.
Intranet altyapısı
- Intranet portal için en güncel son iki sürüm tercih edilmelidir.
- Ses ve görüntülü medya içeriklerine ihtiyaç duyulması halinde ayrıca bir medya akış (streaming) hizmeti veya sunucusu kullanılmalıdır.
3. Yazılım Geliştirme ve Güvenliği
İnternet ve intranet sistemlerine yönelik oluşturulacak yazılımların altyapısı, gereksinimleri ve geliştirme aşamasında uygulanacak yazılım kuralları bu başlık altında listelenmektedir.
Uyarı: "YAZ.01 Yazılım Geliştirme Standartları" dokümanı yazılım geliştirme sürecindeki temel prensipleri belirlemektedir. Web siteleri yazılım geliştirmesinde bu dokümanın da dikkate alınması gerekmektedir.
Genel
- Site tasarımları Google Chrome, Mozilla Firefox, Safari ve Microsoft Edge gibi başlıca internet tarayıcılarının güncel ve desteklenen sürümlerinde aynı şekilde görüntülenmeye uygun (cross-browser uyumlu) olmalıdır. Siteler modern web standartlarına (HTML5, CSS3) uygun geliştirilmeli; belirli bir tarayıcı özelliğine bağımlılık varsa, hangi tarayıcı sürümlerinde çalışacağına dair bilgi yer almalıdır.
- Yeni oluşturulacak yazılımlarda zorunlu kalınmadıkça veri tabanı işlemlerinde T-SQL komutları kullanılmamalıdır. Procedure ve Function'lar tercih edilmeli ya da uygulama veri katmanı (Data Access Layer) yapısı kullanılarak oluşturulmalıdır. T-SQL komutları kullanılan yazılımlarda veri tabanı haberleşmelerinde mutlaka parametreli sorgular (parameterized query / bind variables) kullanılmalıdır.
- Yazılım mimarisi olarak uygulamalar katmanlara bölünmeli ve 3 katmanlı bir mimari düşünülmelidir. İç sistem sunucu / veri tabanı / ERP (SAP vb.) sisteminden veri çekim ve yazım işlemi yapacak yazılımlarda iletişim, orta katman olarak geliştirilecek web servisler tarafından sağlanmalıdır.
- Web servis uygulaması varsa IP kısıtlama uygulanmalıdır. İlgili web servise bağlanacak makinelerin IP adresleri yetkili kişiye bildirilmeli, gerekli IIS düzenlemeleri yapılmalıdır. Belirtilen IP adresleri dışında web servislere başka bir makineden erişime izin verilmemelidir.
- Canlı web uygulama sunucusunda debug işlemine izin verilmemelidir (web.config).
- İnternete açık bir Oracle sunucusu ile iç sistem Oracle sunucusu arasındaki haberleşmeler, oluşturulacak "synonym" ve "linked table"lar vasıtasıyla yapılmalıdır. Bu işlemler sorumlu veri tabanı personeli tarafından gerçekleştirilmelidir.
- Tüm internet/intranet sistemleri için bir varlık envanteri oluşturularak bu dosyaya göre belirli periyotlarda güvenlik ve site içerik kontrolleri planlanmalıdır.
- Üyelik sistemi bulunduran sitelerde giriş işlemleri sırasında arka arkaya yapılan başarısız işlem sayısı kontrol edilmeli, 5 denemeden sonra CAPTCHA vb. otomasyon önleyici doğrulama işlemi uygulanmalı, böylece deneme-yanılma yöntemiyle bot kullanılarak sızma ihtimali en aza indirilmelidir.
- Şifre tanımlamalarında şirket BT standartlarına uygun şifre seçilmesi için gerekli kontroller yapılmalıdır.
- Admin şifreleri şirket BT standartlarına uygun sürelerde yenilenmeye mecbur bırakılmalıdır.
- Güvenlik açıklarına karşı web.config'de oturum ve çerezler "HttpOnly" parametresiyle girilmeli, güvenli (secure) olarak seçilmeli,
<machineKey validation="HMACSHA256" decryption="AES"/>gibi güncel algoritmalar tanımlanarak ViewState yapılarının şifreli olması sağlanmalıdır.
Java ile Yazılım Geliştirme Kuralları
- Üç katmanlı mimari kullanılmalı; iş mantığı, gösterim ve model katmanları birbirinden bağımsız olmalıdır.
- Model katmanı ile veri tabanı arasında mutlaka bir JPA implementasyonu (Hibernate, EclipseLink vb.) kullanılmalıdır.
- Veri tabanı işlemlerinde, ihtiyaç duyulan obje eğer mevcut projede yoksa ilk önce modeli (Java class'ı) oluşturulur (kullanılan framework'e göre anotasyon veya XML konfigürasyonları yapılarak). Java class'ı oluşturulurken veri tabanından gelebilecek null değerler göz önüne alınarak primitive veri tipleri (int, short, double vb.) yerine Object tipleri (Integer, String, Double vb.) kullanılır.
- Bütün sorgular JPA implementasyonu üzerinden yapılmalı, dışarıdan alınan parametreler doğrudan sorgu içine yazılmamalı, bunun yerine query parameter set edilerek gelen parametre bu alana girilmelidir.
- Validasyon işlemleri için JSF'in ve kullanılan diğer framework'lerin sunduğu validator araçları kullanılmalı; eğer hazır bir validator yoksa Java tarafında bir validator sınıfı yazılmalı, validasyon işlemi JavaScript kullanılarak sadece client tarafında yapılmamalıdır.
TLS Kullanımı
Aşağıdaki isterlerden bir ya da birkaçını kapsayan yazılımlarda TLS sertifikası ile HTTPS (TLS 1.2 ve üzeri, tercihen TLS 1.3) kullanılması gerekmektedir:
- Üyelik sistemi (Form Authentication) gereken,
- Ekrana girişi yapılan bilgileri (sadakat kartı vb.) başka sistemlere aktaran,
- Kredi kartı bilgilerini alan/gönderen,
- Satış / cari / son müşteri gibi kritik bilgileri bir sistem üzerinden kullanıcıya gösteren.
HTTPS üzerinde sunulan yazılımlarda HTTPS olmayan bir içerikten veya web sayfasından resim/veri gösterimi (karışık içerik – mixed content) yapılmamalıdır.
Sanal POS Kullanımı
- Sanal POS sistemleri ile şifreli iletişim kurulmalıdır.
- Sanal POS sistemlerinden alınan kredi kartı numarası, son kullanma tarihi ve CVV bilgileri uygulamanın herhangi bir ekran ve çıktısında gösterilmemeli, veri tabanı üzerinde tutulmamalı, girilen bilgilerin güvenliği güncel TLS protokolü (TLS 1.2 ve üzeri, tercihen TLS 1.3) ile korunmalıdır.
- Kart numarası ve CVV alanları için sanal klavye geliştirmesi yapılmalı ve kullanıcıya ilk seçenek olarak sanal klavyeden giriş imkânı sağlanmalıdır.
İyi Uygulama Örnekleri
- Yazılım dilleri olarak C#, Java veya benzeri güncel ve aktif olarak desteklenen diller kullanılmalıdır.
- Geliştirilecek portal uygulamalarında kullanılacak portal yazılımının, üretici tarafından desteklenen güncel sürümleri tercih edilmelidir.
- Yeni geliştirilen uygulamaların HTML5 ile geliştirilmesi tercih edilmelidir.
- "SQL Authentication" metodu yerine "Windows Authentication" metodu tercih edilebilir (Integrated Security).
- Kod yazılırken sınıflarda isimlendirme standardı getirilmelidir.
- Kod yazımında çok dilli projelerde İngilizce tercih edilmelidir.
- Çok dilli projelerde "Resource" veya "Database" yöntemleri ile çok dillilik sağlanmalıdır.
- Encoding için UTF-8 format kullanılması tavsiye edilir.
- Batch işlemlerde (örn. entegrasyon) işlemin tamamlandığına dair bilgilendirme e-postasının gönderilmesi önerilir.
- Tablolarda "Primary Key" ve gereken yerlerde uygun "Unique Key"ler tanımlanmalıdır.
- Sorguların çalışma sıklığı, getirdiği satır sayısı ve gelecekteki durum göz önüne alınarak uygun indeksler tanımlanmalıdır.
- Web tasarımları duyarlı (responsive) olmalı ve HTML5 standartlarına uygun geliştirilmeli, süreç işleten uygulamalarda mobil kullanım senaryoları için ayrı çalışmalar planlanmalıdır.
- Kullanımdan kaldırılmış eklenti teknolojileri (Adobe Flash, Silverlight vb.) yerine modern web standartları (HTML5, CSS3, JavaScript) tercih edilmelidir.
- Script ve class dosyaları aynı sunucu üzerinde tutulmalıdır.
- Uygulama içerisinden diğer sistemlere bağlanırken ya da entegrasyonlarda DNS isimleri kullanılmalı, doğrudan IP yazılarak erişim yapılmamalıdır. Böylece olası bir sunucu değişiminde koda müdahale ihtiyacı oluşmayacaktır.
- Sistem yöneticisi tarafından IIS üzerinden oturum sınırlaması getirilmeli, belli durumlarda IIS'in uygulamayı yeniden başlatarak uygulamanın yavaş çalışmasına sebep olması engellenmelidir. Ayrıca oturumlarda belirli bir zaman aşımı parametresi verilerek belirli süre sonunda kullanıcının yeniden login olması istenmelidir.
- Herhangi bir nedenle kullanım raporları oluşturan bir script dosyasının çalışmaması nedeniyle site açılışı durdurulmamalıdır. Script'ler "Try–Catch" bloğu içinde çalıştırılmalı, belirli bir süre cevap vermezse yüklenmeden atlanması sağlanmalıdır.
- "Preload" yerine "Triggerload" sistemine uygun modelde içerik yüklenmesine önem verilmeli, kullanıcının açılışta gereksiz yere bekletilmesinin önüne geçilmelidir.
- Bankacılık uygulamalarında ödemelerin şirkete ait güvenli ödeme sayfası üzerinden yapılacak şekilde yapılandırılması tercih edilmelidir.
- Geliştiriciler güvenlikle ilgili ortaya çıkan yeni sızma ve saldırı yöntemlerini takip etmeli ve konuyla ilgili çözümleri sistem üzerinde uygulamalıdır. Bu konuda owasp.org sitesinin takip edilmesi tavsiye edilir.
- Projenin boyutuna bağlı olarak birden fazla uygulama sunucusunun bir yük dengeleyici (load balancer) arkasına alınması, statik dosyaların ayrı bir sunucu üzerinde tutulup uygulama sunucusunun üzerindeki yükün azaltılması, veri tabanı (Oracle, MSSQL) sunucusunun uygulama sunucusundan ayrı bir makinede bulundurulması ile sistemin hem kesintisiz hem de performanslı çalışması sağlanabilir.
- Veri güvenliği açısından ikinci bir veri tabanı sunucusu kurulup bu sunucunun üretim ortamı veri tabanının kopyası olması Active Dataguard gibi araçlar kullanılarak sağlanabilir; üretim ortamı veri tabanında herhangi bir sorun olması durumunda bu veri tabanına çok kısa sürede geçilerek sistemin kesintisiz çalışma olasılığı artırılabilir.
- Uygulamalar doğrudan kod olarak değil, yayınlama (publish) yöntemiyle sunuculara aktarılmalıdır.
Java İyi Uygulama Örnekleri
- JSF için PrimeFaces gibi güncel ve aktif olarak bakımı yapılan bileşen framework'lerinin kullanılması tercih edilmektedir.
- View katmanında kullanılan JavaScript ve CSS dosyaları mümkün olduğunca sistemin kendi sunucusunda tutulmalıdır.
- Deploy işlemlerinin otomatikleştirilmesi tavsiye edilir. Örneğin Jenkins veya GitHub Actions gibi bir CI/CD aracı kullanılarak sistemin versiyon kontrol sisteminden projeyi alarak deploy işlemini otomatik gerçekleştirmesi sağlanabilir.
4. Arayüz Geliştirme
Güncel teknolojiye ve arama motorlarına uygun, kullanıcı ve arayüz etkileşimi konusu bütünüyle ele alınmalı; bunun yanı sıra web sitesi kullanıcı deneyimine uygun hale getirilmelidir.
Genel
- Kullanıcılar internet sitesi içinde farklı sayfalarda farklı yapı ve kullanım yöntemleri ile karşılaşmamalıdır. Tutarlı ve standart bir görünümün tüm siteye hâkim olması sağlanmalıdır.
- Kullanıcılara bulundukları sayfa ile ilgili olmayan veya onlar tarafından istenilmemiş açılır pencere ve grafiklerin gösterilmesinden kaçınılmalıdır.
- Sayfalardaki butonların tıklanabilir oldukları anlaşılır olmalıdır.
- Kullanıcılar ana sayfaya, diğer tüm sayfalardan kolaylıkla erişebilmelidir.
- Şirket internet sitelerinde kurumsal bilgileri içeren bir sayfaya yer verilmelidir. Şirket internet sitelerinde kişilere özel e-posta adresleri yerine şirkete yönelik e-posta adresleri kullanılmalıdır.
İyi Uygulama Örnekleri
- Ana sayfa mümkün olduğunca bir tam sayfada görülebilir şekilde hazırlanmalıdır. Tam sayfa olmadığı durumlarda, sayfa içerisindeki her öğenin önem sırasına göre yerleştirilmesi gereklidir.
- Kullanıcıların arama yapabilecekleri site içi arama motorları tasarlanmalı ve yaptıkları aramalarda hangi bölümün veya bölümlerin aratıldığına yönelik bilgi verilmesi sağlanmalıdır. Site içi arama motorunun tüm siteyi araması ya da aranacak sayfaları belirlemesi sağlanmalıdır. Arama sonucunda belirlenen bağlantılar uygun bir biçimde kullanıcıya sunulmalıdır. İnternet sitesi içerisinde her sayfada arama yapılabilmesine olanak sağlanmalıdır; böylece kullanıcılar arama yapmak istediklerinde ana sayfaya dönmek zorunda kalmayacaklardır.
- Kullanıcı deneyiminin önem arz ettiği, özellikle alışveriş fonksiyonunun bulunduğu web sitelerinde kullanıcı davranışlarının belirli aralıklarla ve farklı metotlarla analiz edilip site arayüzünün iyileştirilmesi gerekmektedir.
5. İstatistik, Analiz ve Arama Motoru Optimizasyonu
SEO (Search Engine Optimization), web sitesinin arama motorlarında görünürlüğünü artırmak üzere site içi ve site dışı yapılan çalışmalardır. Bu çalışmalardan verimli sonuçlar alabilmek için sitenin SEO uyumlu hale getirilmesi gerekmektedir.
URL Yapısı
SEO uyumlu URL, web sayfasının hem ziyaretçi hem de arama motorları tarafından daha iyi anlaşılması ve arama sonuçlarında üst sıralarda yer alması için kullanılan bir URL'dir.
- "Kategori, sayfa..." gibi yapılar yerine sitedeki kategorilerin kendi isimleri ya da sayfaların anahtar kelimeleri URL'de kullanılmalıdır.
- Her sayfa için farklı URL'ler oluşturulmalıdır.
- URL içerisinde sayfanın ilgili anahtar kelimeleri geçmelidir.
- Türkçe karakter kullanımına dikkat edilmelidir.
URL Yönlendirmeleri
SEO uyumlu yönlendirmeler bir sitenin arama motoru görünürlüğünü doğrudan etkileyen maddelerin başında gelir; yanlış yapılandırma, sayfanın okunmaması ve arama sonuçlarında görünmemesi gibi kritik sonuçlar doğurabilmektedir.
- Tekrarlanan içerik problemi oluşturabilecek sayfalarda, arama sonuçlarında çıkması tercih edilen sayfayı belirtmek için tercih edilmeyen sayfalara
rel="canonical"yerleştirilir. Bu şekilde arama motorları canonical etiketinin işaret ettiği sayfayı ilgili arama sonucunda gösterir. - Canonical etiketi sayfaların
<head>elementi içerisine yerleştirilir. Örnek:<link rel="canonical" href="https://domain.com/kategori" /> - Web sitesinden başka web sitelerine yapılan yönlendirmeler "nofollow" etiketi ile verilmelidir. Örnek:
<a href="https://www.domain.com/" title="sayfa adı" rel="nofollow">sayfa adı</a>
Meta Data
- Her internet sayfasında "Tanım" (Description) ve "Başlık" (Title) üst verileri bulunmalıdır. Arama motorları tarafından artık dikkate alınmayan "Anahtar Kelime" (Keywords) meta etiketine gerek yoktur.
- Meta title maksimum 70 karakter olmalıdır.
- Meta description maksimum 168 karakter olmalıdır.
- Her sayfanın title, meta tag, description, h1, h2 etiketleri ve image alt text'leri o sayfaya özel olacak şekilde var olmalı ve CMS sistemi üzerinden düzenlenebilir olmalıdır.
Robots.txt ve Sitemap.xml
- Robotlara hangi sayfaların indekslenip hangilerinin indekslenmeyeceğini anlatmak için her web sitesi için robots.txt dosyası oluşturulmalıdır.
- Robots.txt dosyası sadece belirli bir şekilde düzenlenmiş metin içeriğine sahip olmalıdır ve asla HTML kodları içermemelidir.
- Web sitesindeki taranacak URL'ler hakkında arama motorlarının bilgilendirilebilmesi için her web sitesi için sitemap.xml dosyası oluşturulmalıdır. Site haritaları yapı itibarıyla robots.txt URL hariç tutma protokolünün tamamlayıcısı olan bir URL dahil etme protokolüdür.
- Site haritası, robots.txt dosyası içerisinde arama motoru botlarına sunulmalıdır.
- Robots.txt dosyasının içinde arama motorlarının bulabilmesi için site haritası dosyasının yeri işaret edilmelidir. Bunun için robots.txt dosyasına
Sitemap: https://www.siteniz.com/sitemap.xmlsatırının eklenmesi yeterlidir.
İçerik ve Görseller
- Sayfa içerisinde bulunan içerikler metin (text) formatında olmalıdır.
- Görsel üzerine yazılan yazılar botlar tarafından algılanmamaktadır. Site içerisinde bulunan görseller mutlaka anlamlı şekilde adlandırılmalıdır; örneğin eklenen resmin adı abcdfgh.jpg değil urun-adi.jpg olmalıdır. Arama motoru botları resimleri, resimlerde kullanılmış etiketler yardımı ile indeksler. Görsellerde "title" ve "alt" etiketlerinin kullanılması gerekmektedir.
Botlar ve W3C Standartları
- Arama motoru botlarının tarama hızını yavaşlatmamak için sayfalarda kodlama hatası bulunmadığından emin olunmalıdır.
- W3C standartları uyumluluğu analiz edilmeli ve hatalar temizlenmelidir. Kod hataları başta indekslenme olmak üzere birçok SEO konusunda siteye zarar vermektedir. W3C standartlarına uygun sitelerde tarayıcı farklılıklarında bozulmalar olmayacaktır.
Öneriler ve İyi Uygulama Örnekleri
Arama robotlarıyla ilgili olarak aşağıdaki kod parçacıkları kullanılabilir:
Tüm robotların sitenin tamamını indekslemesini engellemek için:
User-agent: *
Disallow: /
Sitenin tamamının robotlardan birisi tarafından indekslenmesini engellemek için:
User-agent: Googlebot
Disallow: /
User-agent: *
Disallow:
Tüm robotların sitenin tamamını indekslemesi için (boş bir robots.txt dosyası da aynı mesajı verecektir):
User-agent: *
Disallow:
Bir dizinin tüm robotlar tarafından indekslenmesini engellemek için:
User-agent: *
Disallow: /dizin-adi/
Bir sayfanın tüm robotlar tarafından indekslenmesini engellemek için:
User-agent: *
Disallow: /dizin-adi/ozel-sayfa.html
- Bağlantı başlığının, hedef sayfada verilen başlık veya konu ile tutarlı olması sağlanmalıdır. "Buraya Tıklayın" gibi etiketlerden kaçınılmalıdır.
- Sitenin W3C uyumluluğu test edilmeli ve tespit edilen hatalar giderilmelidir.
- Site hızında 500 milisaniyelik (yarım saniye) yavaşlama, trafikte %20 azalmaya sebep olabilmektedir. Bu yüzden web sitesinin ortalama en fazla 5 saniye ya da daha kısa sürede yüklenmesi beklenmektedir.
6. Sosyal Medya
Kullanıcılar mobil ve dijital ortamdaki interaktif iletişime yönelmektedir. Sosyal medyanın kullanıcılar için önemi her dönem büyük ölçüde artmaktadır. Bu nedenle şirketin sosyal medyada var olması isteğe bağlı olmaktan çok zorunlu hale gelmiştir.
Standartlar
- Şirket, aktif bir sosyal medya stratejisi olmasa dahi marka ismini içeren sosyal medya kanallarını sahiplenmelidir.
- Birincil sosyal medya kanallarını Instagram, X (Twitter), YouTube, LinkedIn ve Facebook gibi yaygın kullanılan platformlar oluşturmaktadır.
İyi Uygulama Örnekleri
- Şirket ve marka web sayfalarında kişisel reklam, ilan vb. yer almaması önerilmektedir.
- Sosyal medya kullanımına ilişkin bir bilgilendirme dokümanı/taahhütname hazırlanması önerilmektedir.
- Önerilen diğer sosyal medya kanalları, hedef kitleye göre değerlendirilmek üzere TikTok, Pinterest ve WhatsApp gibi platformlardır.
- Sosyal medya üzerinden toplanan güncel verilerin (kullanıcı bilgileri, kampanya dönüşümleri vb.) şirket veri tabanında tutulması önerilmektedir.
Referanslar
- eticaretmag.com/sosyal-medya-stratejisi-ve-icerik-yonetim-ipuclari/
- validator.w3.org
- en.wikibooks.org/wiki/GUI_Design_Principles
- nngroup.com/articles/ten-usability-heuristics/
- owasp.org
- cert.org/secure-coding/
- computer.org/portal/web/se/home
- webguvenligi.org
- networkcomputing.com
- resources.infosecinstitute.com