CodeBlanks Logo Icon CodeBlanks

Proje sonu - Güvenli sayfa

HTML kursu · Uzman · Ders 28/39

Tüm güvenlik tekniklerini birleştirip dokümante edersin.

Son adım: giriş formu

Son adıma geldin. Sayfada banka adı, yönerge, harici yardım bağlantısı, CSP ve referrer policy var. Şimdi giriş formunu ekleyeceksin.

Form iki alandan oluşur: kullanıcı kodu ve şifre. Her alan için label + input çifti yazılır; label'ın for özniteliği, input'un id özniteliğiyle eşleşir. Altta button type="submit" ile gönderim düğmesi.

Formda güvenlik ve erişilebilirlik

Form eklerken güvenlik ve erişilebilirlik birlikte düşünülmeli:

  • method="post": şifre URL'de görünmesin
  • type="password": şifre alanı maskelensin
  • autocomplete="current-password": tarayıcı yalnızca doğru bağlamda doldursun
  • required: boş gönderim engellensin
  • label + for/id: ekran okuyucu doğru eşleşsin

Bu projede tüm güvenlik katmanları bir araya gelir.

Uygulama Giriş formunu ekle

Önceki dersin sayfasını al. <body>'de yardım bağlantısından sonra bir giriş formu ekle:

  • <form action="/oturum-ac" method="post">
  • İki label + input çifti: for/id="user" (type=text, autocomplete=username, required) ve for/id="password" (type=password, autocomplete=current-password, required)
  • <button type="submit">Giriş yap</button>
Örnek çözümü göster
<!DOCTYPE html>
<html lang="tr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'">
    <meta name="referrer" content="strict-origin-when-cross-origin">
    <title>Güvenli Bank - Giriş</title>
  </head>
  <body>
    <h1>Güvenli Bank</h1>
    <p>Lütfen kullanıcı kodunuzla giriş yapınız.</p>
    <p><a href="https://yardim.guvenlibank.example/oturum-acma" target="_blank" rel="noopener noreferrer">Yardım merkezi</a></p>
    <form action="/oturum-ac" method="post">
      <p>
        <label for="user">Kullanıcı kodu</label>
        <input id="user" name="user" type="text" autocomplete="username" required>
      </p>
      <p>
        <label for="password">Şifre</label>
        <input id="password" name="password" type="password" autocomplete="current-password" required>
      </p>
      <button type="submit">Giriş yap</button>
    </form>
  </body>
</html>

Güvenli Bank sayfası tamam!

Tebrikler! Güvenli Bank giriş sayfasını tamamladın. Sayfa artık şunları içeriyor:

  • Harici yardım bağlantısında rel="noopener noreferrer"
  • meta http-equiv="Content-Security-Policy" ile CSP
  • meta name="referrer" ile referrer policy
  • method="post", type="password" ve for/id eşleşmesiyle erişilebilir form

Bu dört katman, küçük bir sayfayı bile gerçek bir banka sayfası kadar güvenli yapar. Aynı kalıbı kendi sitelerinde de kullanabilirsin.

Kendini test et

  1. Bir <label> etiketini <input> ile nasıl bağlarsın?

    <label ...>...</label>
    <input ...>
    • label for="x" ve input id="x" ile
    • label class="x" ve input class="x" ile
    • label name="x" ve input id="x" ile
    • label value="x" ve input name="x" ile
    Cevabı göster

    label for="x" ve input id="x" ile — Doğru. for ve id eşleşmesi etiketi alana bağlar; ekran okuyucu bunu okur.

  2. Şifre gönderimi için method değerini tamamla

    <form action="/oturum-ac" method="____">
      <label for="user">Kullanıcı kodu</label>
      <input id="user" name="user" type="text">
    </form>
    Cevabı göster
    <form action="/oturum-ac" method="post">
      <label for="user">Kullanıcı kodu</label>
      <input id="user" name="user" type="text">
    </form>
  3. Form parçasını rolüyle eşleştir

    label for
    alanla etiketi bağlar
    input type=password
    şifreyi maskeler
    button type=submit
    formu gönderir
    autocomplete
    tarayıcı doldurma bağlamı

Uzman bölümündeki tüm dersler