HTML’de Güvenli ve Kullanıcı Dostu Formlar Oluşturma Rehberi
Formlar, bir web sitesinin kullanıcı ile etkileşim kurduğu en kritik alanlardan biridir. İster bir üyelik kaydı, ister bir yorum alanı ya da bir iletişim formu olsun — form güvenliği ve doğrulama (validation) yapılmadığında site hem güvenlik hem de kullanıcı deneyimi açısından ciddi risk taşır.
Bu yazıda, HTML’de güvenli, hızlı ve erişilebilir form yapısını nasıl kurabileceğini, doğrulama tekniklerini ve yapılması gereken güvenlik önlemlerini adım adım öğreneceksin.
1. Temel HTML Form Yapısı
Bir formun iskeleti genellikle şu şekildedir:
- HTML’de Güvenli ve Kullanıcı Dostu Formlar Oluşturma Rehberi
- Formlar, bir web sitesinin kullanıcı ile etkileşim kurduğu en kritik alanlardan biridir. İster bir üyelik kaydı, ister bir yorum alanı ya da bir iletişim formu olsun — form güvenliği ve doğrulama (validation) yapılmadığında site hem güvenlik hem de kullanıcı deneyimi açısından ciddi risk taşır.
- 1. Temel HTML Form Yapısı
- 2. HTML5 Doğrulama Özellikleri
- 3. Custom (Özel) Validation Mesajları
- 4. Form Güvenliği: HTML Tarafında Alınabilecek Önlemler
- 5. Kullanıcı Deneyimi (UX) İyileştirmeleri
- 6. Erişilebilirlik (a11y) ve Form Etkileşimi
- 7. Test Et ve Geliştir
Burada dikkat etmen gereken bazı temel noktalar:
-
method="POST"kullan, çünkü GET parametreleri adres çubuğunda görünebilir (güvenlik açığı). -
required,minlength,typegibi HTML5 doğrulama özellikleri kullan. -
<label>etiketleri form öğeleriyle ilişkilendirilmiş olmalı (erişilebilirlik için).
2. HTML5 Doğrulama Özellikleri
HTML5 ile gelen input türleri ve öznitelikler, tarayıcı düzeyinde otomatik doğrulama sağlar.
Örneklerle bakalım 👇
E-posta Alanı
Tarayıcı otomatik olarak geçersiz e-posta biçimlerini reddeder.
Şifre Alanı
Kullanıcının en az 8 karakter girmesini zorunlu kılar.
Telefon Numarası
Sadece 10 haneli sayısal girişleri kabul eder.
URL Alanı
Tarih Alanı
3. Custom (Özel) Validation Mesajları
Bazı durumlarda, tarayıcının gösterdiği varsayılan hata mesajları yeterli olmaz.
Kendi hata mesajını eklemek için setCustomValidity() metodunu kullanabilirsin 👇
Bu şekilde kullanıcıya daha anlaşılır, Türkçe hata mesajı gösterebilirsin.
4. Form Güvenliği: HTML Tarafında Alınabilecek Önlemler
HTML tek başına tam güvenlik sağlamaz, ancak temel seviyede korunma sağlar.
İleri güvenlik için sunucu tarafında da işlem yapılmalıdır.
Yine de HTML düzeyinde şu önlemler önemlidir 👇
1. autocomplete Özelliğini Kontrol Et
Kritik alanlarda otomatik doldurmayı devre dışı bırak:
2. Gizli Alanları (hidden input) Dikkatli Kullan
Bu alanlar kullanıcı tarafından değiştirilebilir, o yüzden sadece ön izleme veya yönlendirme için kullan.
3. CSRF ve XSS’ten Korun
HTML formunun gönderildiği sunucuda:
-
CSRF token kullan (ör.
<input type="hidden" name="token" value="xyz123">) -
Girdi verilerini sanitize et (özellikle yorum, isim, e-posta gibi alanlarda).
4. HTTPS Kullan
Formlarda kişisel veri toplanıyorsa SSL sertifikası şarttır.
Kullanıcı verileri şifreli aktarılır ve güvenlik ihlalleri önlenir.
5. Kullanıcı Deneyimi (UX) İyileştirmeleri
Form güvenliği kadar, kullanıcı dostu olması da önemlidir.
Küçük detaylarla büyük fark yaratabilirsin 👇
-
Alan ipuçları (placeholder) ekle: kullanıcı ne gireceğini bilsin.
-
Doğrulama sırasında canlı geri bildirim ver:
6. Erişilebilirlik (a11y) ve Form Etkileşimi
Formlarda erişilebilirlik unutulmamalıdır:
-
Her input için
<label>tanımla. -
Gerekirse
aria-labelveyaaria-describedbykullan. -
Hata mesajlarını screen reader’ların okuyabileceği şekilde tanımla.
7. Test Et ve Geliştir
Formlarını test etmek için:
-
Chrome DevTools → Form Validation panelini kullan,
-
Lighthouse raporu ile erişilebilirlik + güvenlik skorlarını ölç,
-
Google reCAPTCHA ekleyerek bot gönderimlerini engelle.
Bir Cevap Yaz
E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.