0:00
Herkese merhaba. Bugün sizlerle çok
0:02
ilginç bir şey yapacağız. Her gün
0:03
kullandığımız web sitelerinin kaputunu
0:05
açıp içine bakacağız. Bunu da bizzat bir
0:08
weblama final sınavını masaya yatırarak
0:11
ve sorularını birlikte çözerek
0:13
yapacağız. Şöyle bir düşünün. Bir siteye
0:15
giriş yapıyorsunuz. Farklı sayfalara
0:17
tıklıyorsunuz ama site kim olduğunuzu
0:19
unutmuyor. Alışveriş sepetinize bir şey
0:21
ekliyorsunuz. Başka bir sayfaya
0:22
gidiyorsunuz. O ürün hala orada. Peki bu
0:24
sihir nasıl oluyor? İşte bu sihrin
0:26
arkasında ne var? Gelin birlikte
0:28
bakalım. Sınavdaki ilk konumuz da tam
0:30
olarak bu. Hafıza. Bir web sitesinin
0:33
sizi hatırlamasını sağlayan o hafıza. Ve
0:35
bu problemi çözmek için elimizde iki
0:37
tane temel araç var. Oturumlar ve
0:39
çerezler. Şimdi aralarındaki fark çok
0:41
ama çok önemli. Oturumları sunucunun
0:44
size özel ayırdığı anahtarı sadece sizde
0:46
olan kilitli bir dolap gibi
0:48
düşünebilirsiniz. Hassas bilgileriniz.
0:50
Mesela giriş yapmış olduğunuz bilgisi
0:52
orada güvende tutulur. Çerezler ise
0:55
sanki bir mağazadan aldığınız ve
0:56
cüzdanınıza taşıdığınız küçük bir fiş
0:59
gibidir. Dil tercihi gibi daha basit
1:01
bilgileri tarıcınızda saklar. Haydi
1:03
bakalım. Sınav başlıyor. İşte ilk soru.
1:07
Az önce bahsettiğimiz o sunucudaki
1:09
dolaba bir programcı diyelim ki sizin
1:12
kullanıcı adınızı tam olarak nasıl
1:14
yerleştirir? Şöyle bir bakın
1:16
seçeneklere. Hepsi birbirine benziyor
1:18
gibi ama içlerinden sadece bir tanesi
1:20
doğru yazım şekli. Biraz düşünün bakalım
1:22
hangisi kulağa en doğru geliyor. Eğer B
1:25
şıkkı dediyseniz tebrikler. Doğru cevap
1:28
B. PHP'nin bu iş için kullandığı özel
1:30
bir kasası var. Adı da dolar işareti.
1:33
Alt tire ve büyük harflerle session. Bu
1:36
özel diziye köşeli parantez içinde
1:38
username anahtarını verip eşittir
1:40
diyerek değeri atıyorsunuz. Tıpkı o
1:43
dolabın içine kullanıcı adı etiketli bir
1:45
kutu koymak gibi. Peki oturumlar tamam.
1:48
Gelelim o cüzdandaki fişe yani
1:50
çerezlere. Diyelim ki bir geliştirici
1:54
bir çerez oluşturdu ama ona bir son
1:56
kullanma tarihi vermeyi unuttu. Bu
1:58
çereze ne olur? Sonsuza kadar orada mı
2:01
kalır? İşte bu çok kritik bir nokta.
2:03
Varsayılan olarak bu çerezler adeta bir
2:05
kelebek ömrüne sahip. Yani siz tarayıcı
2:08
penceresini kapattığınız an puf uçup
2:10
gidiyorlar. Bu yüzden onlara oturum
2:12
çerezi deniyor. Kalıcı olmaları için
2:14
programcının özellikle bir tarih
2:15
belirtmesi gerekiyor. Harika. İlk bölümü
2:18
geçtik. Şimdi gelelim ikinci aşamaya.
2:21
Kullanıcıyı hatırlıyoruz. Güzel. Ama o
2:24
bilgiler yani kullanıcı adı ve şifre en
2:27
başta sunucuya nasıl ulaşıyor? Cevap:
2:30
Hepimizin her gün doldurduğu o web
2:32
formlarında gizli bir formun iki can
2:34
alıcı özelliği var. Action ve method.
2:37
Action dediğimiz şey formdaki verilerin
2:39
gideceği adres. Yani sunucudaki dosyanın
2:42
yolu. Method ise bu verilerin oraya
2:44
nasıl gönderileceği yani kargo şirketi
2:47
gibi düşünebilirsiniz. İşte bu kargo
2:49
şirketi de temelde iki türlü çalışıyor.
2:51
Get metodu resmen bir kart postal
2:54
göndermek gibi. Üzerine ne yazarsanız
2:56
yazın postacıdan komşunuza kadar herkes
2:59
okuyabilir. Çünkü bütün bilgi
3:01
tarayıcının adres çubuğunda apaçık
3:02
ortadadır. Post ise tam tersi. Ağzı
3:06
sıkıca kapatılmış mühürlenmiş bir zarf.
3:08
içinde ne olduğunu sadece alıcı bilir.
3:11
İşte bu kart postal zarf benzetmesi
3:13
aklınızdayken sınavın bir sonraki sorusu
3:15
geliyor. Bir şifre veya kredi kartı
3:18
bilgisi gibi hassas bir veri
3:19
gönderiyorsunuz. Hangi metodu kullanmak
3:21
zorundasınız? Tek bir güvenli seçenek
3:23
var. O da hangisi? Şıklar karşınızda.
3:27
Hangisi o mühürlü zarf görevini görüyor
3:29
ve verilerinizi meraklı gözlerden
3:32
saklıyor? Cevap hiç şüphesiz D şıkkı.
3:35
Post. Bu web güvenliğinin en temel
3:37
kurallarından biridir. Giriş yaparken
3:40
şifrenizin adres çubuğunda asla
3:42
görünmemesinin sebebi de tam olarak
3:44
budur. Eğer bir yerde şifrenizi adres
3:46
çubuğunda görüyorsanız o siteden hemen
3:49
kaçın. Süper. Artık kullanıcıyı nasıl
3:52
hatırlayacağımızı ve ondan nasıl güvenli
3:54
veri alacağımızı biliyoruz. Peki bir
3:57
sunucu diyelim ki alışveriş
3:59
sepetinizdeki 10 farklı ürünü tek ekrana
4:02
nasıl yazdırıyor? Her biri için ayrı
4:05
ayrı kod mu yazıyor? Tabii ki hayır.
4:07
İşte burada devreye döngüler giriyor.
4:09
Gelin şu sınav sorusuna bir bakalım.
4:11
Burada 1'den 10'a kadar sayması gereken
4:13
bir kod var ama dikkat içinde bir break
4:16
yani 40 komutu gizli. Bu komut döngüyü
4:19
aniden durduruyor. Sizce bu kod ekrana
4:21
ne yazdırır? Hadi gelin bilgisayar gibi
4:24
düşünelim. Döngü başlıyor. Ekrana 1
4:26
yazıyor. Sonra 2 3 4 her şey yolunda.
4:31
Ama sayaç 5'e geldiği an o if koşulu
4:34
devreye giriyor. Dur bakalım diyor.
4:36
Ekrana 5 sayıdayız yazdırıyor ve hemen
4:39
ardından o break komutunu görüyor. İşte
4:42
o komut bütün oyunu bozuyor. Sanki
4:44
birisi acil durum düğmesine basmış gibi
4:47
döngüyü anında bitiriyor. Bu yüzden de
4:50
doğru cevap C şıkkı. döngü 6'yı 7'yi
4:52
görmüyor bile. Çünkü break komutu ona
4:55
burada kesiyoruz dedi. İşte bu programın
4:57
akışını nasıl milimetrik olarak kontrol
4:59
edebildiğimizin harika bir örneği.
5:02
Tamamdır. Sınavın teknik kısımlarını
5:04
geride bıraktık. Şimdi bir adım geri
5:06
çekilip öğrendiklerimizin ne anlama
5:08
geldiğine yani büyük resme bakalım.
5:11
Bakın bugün neleri çözdük. Bir web
5:13
sitesinin hafızası için oturumlar denen
5:15
o kilitli dolapları kullandığını gördük.
5:17
güvenli iletişim için post metoduyla
5:20
mühürlü zarflar gönderdiğini anladık ve
5:23
tekrar eden işleri halletmek için de
5:25
break gibi komutlarla mantık akışını
5:27
nasıl kontrol ettiğini öğrendik. Bu
5:29
basit yapı taşları bir araya gelerek her
5:31
gün kullandığımız o dinamik deneyimleri
5:33
yaratıyor. Artık bir dahaki sefere bir
5:36
siteye giriş yaptığınızda, bir forma
5:39
tıkladığınızda ya da alışveriş
5:41
sepetinize bir şey eklediğinizde
5:43
perdenin arkasında neler döndüğünü çok
5:45
daha iyi bileceksiniz. Bu da akla son
5:48
bir soru getiriyor. Her gün içinde
5:51
gezindiğiniz bu dijital dünyayı
5:53
oluşturan temel kodları bilmek sizin bu
5:55
dünyaya bakışınızı nasıl değiştir?