Web Security – HTTP və HTTPS

HTTP nədir? (HyperText Transfer Protocol)
HTTP, 1989-1991-ci illər arasında Tim Berners-Li və komandası tərəfindən hazırlanmış
vebsayta baxdığınız zaman istifadə edilən protokoldur. HTTP, HTML, Şəkillər, Videolar
və s. Veb səhifə məlumatlarını ötürmək üçün veb serverləri ilə əlaqə qurmaq üçün
istifadə olunan qaydalar toplusudur.


HTTPS nədir? (HyperText Transfer Protocol Secure)
HTTPS HTTP-nin təhlükəsiz versiyasıdır. HTTPS məlumatları şifrələnir, ona görə də o,
sadəcə insanların aldığınız və göndərdiyiniz məlumatları görməsinə mane olmur, həm
də düzgün veb serverlə danışdığınıza və onu saxtalaşdıran heç bir şey olmadığına
əminlik verir.


Sorğular və Cavablar
Vebsayta daxil olduğumuz zaman brauzeriniz HTML, şəkillər kimi aktivlər üçün veb
serverə sorğu göndərməli və cavabları göstərməlidir. Bundan əvvəl, brauzerə bu
resurslara necə və harada daxil olmağı xüsusi olaraq söyləməlisiniz, URL-lər burada
kömək edəcəkdir.


URL nədir? (Uniform Resource Locator)
Əgər siz nə vaxtsa internetdən istifadə etmisinizsə, daha əvvəl URL-dən istifadə
etmisiniz. URL əsasən internetdəki resursa daxil olmaq üçün təlimatdır. Aşağıdakı şəkil
URL-nin bütün atributları ilə necə göründüyünü göstərir (hər sorğuda bütün atributlardan
istifadə edilmir).


Protocol: Bu sizə HTTP, HTTPS, FTP (Fayl Transfer Protokolu) kimi resursa daxil
olmaq üçün hansı protokoldan istifadə edəcəyinizi bildirir.
User: Bəzi xidmətlər daxil olmaq üçün autentifikasiya tələb edir, daxil olmaq üçün URLə
istifadəçi adı və şifrə qoya bilərsiniz.
Host: Daxil olmaq istədiyiniz serverin domen adı və ya IP ünvanı.

Port: Qoşulacağınız port adətən HTTP üçün 80 və HTTPS üçün 443-dür, lakin bu,
istənilən portdan asılı olaraq 1 – 65535 dəyişə bilər.
Path: Daxil olmağa çalışdığınız resursun fayl adı və ya yeri.
Query String: İstədiyiniz yola göndərilə bilən əlavə məlumat bitləri. Məsələn, id 1 olan
blog məqaləsini /blog?id=1 bloq yoluna idxal etmək istədiyinizi söyləyəcək.
Fragment: Bu, faktiki tələb olunan səhifədəki yerə istinaddır. Bu, tez-tez uzun
məzmunlu səhifələr üçün istifadə olunur və birbaşa səhifənin müəyyən hissəsi ilə
əlaqələndirilə bilər ki, istifadəçi səhifəyə daxil olan kimi ona baxa bilsin.


Sorğu etmək
Yalnız bir “GET/HTTP/1.1” sətri ilə veb serverə sorğu göndərmək mümkündür.

Ancaq daha zəngin veb təcrübəsi üçün digər məlumatları da göndərməlisiniz. Bu digər
məlumatlar sizin əlaqə saxladığınız veb serverə verəcəyiniz əlavə məlumatları ehtiva
edən başlıq adlanan başlıqlarda göndərilir.
Sorğu nümunəsi:

GET / HTTP/1.1
Host: tryhackme.com
User-Agent: Mozilla/5.0 Firefox/87.0
Referer: https://tryhackme.com/

Bu sorğunun hər sətrini açıqlayaq:
Sətir 1: Bu sorğu GET metodunu göndərir (bu barədə daha çox HTTP Metodları
tapşırığında), / ilə ana səhifəni sorğulayır və veb serverə HTTP protokolunun 1.1
versiyasından istifadə etdiyimizi bildirir.
Sətir 2: Veb serverə tryhackme.com veb saytını istədiyimizi bildiririk
Sətir 3: Veb serverə Firefox versiyası 87 Brauzerindən istifadə etdiyimizi bildiririk
Sətir 4: Veb serverə deyirik ki, bizi bu səhifəyə yönəldən veb səhifə
https://tryhackme.com
Sətir 5: HTTP sorğuları həmişə sorğunun tamamlandığını veb serverə bildirmək üçün
boş sətirlə bitir.


Cavab nümunəsi:
HTTP/1.1 200 OK
Server: nginx/1.15.8
Date: Fri, 09 Apr 2021 13:34:03 GMT
Content-Type: text/html
Content-Length: 98
<html> <head> <title>TryHackMe</title> </head> <body>Welcome To TryHackMe.com </body> </html>
Bu cavabın hər sətrini açıqlayaq:
Sətir 1: HTTP 1.1, serverin istifadə etdiyi HTTP protokolunun versiyasıdır,
ardınca HTTP Status Kodu, bu halda “200 Ok” sorğunun uğurla tamamlandığını bildirir.
Sətir 2: Bu bizə veb server proqramını və versiya nömrəsini bildirir.
Sətir 3: Veb serverin cari tarixi, vaxtı və saat qurşağı. Sətir 4: Məzmun Tipi başlığı müştəriyə HTML, şəkil, video, pdf, XML kimi
hansı növ məlumatın göndəriləcəyini bildirir.
5-ci sətir: Məzmun uzunluğu müştəriyə cavabın nə qədər davam etdiyini
bildirir, bu yolla biz heç bir məlumatın əskik olmadığını yoxlaya bilərik.
Sətir 6: HTTP cavabı HTTP cavabının sonunu təsdiqləmək üçün boş sətirdən
ibarətdir.
Sətir 7-14: Tələb olunan məlumat, bu nümunədə ana səhifə.

HTTP metodları
HTTP metodları müştərinin HTTP sorğusu edərkən nəzərdə tutulan hərəkətini
göstərmək üçün bir yoldur. Çoxsaylı HTTP üsulları var, lakin biz ən ümumi olanları
əhatə edəcəyik, baxmayaraq ki, siz əsasən GET və POST metodları ilə
maraqlanacaqsınız.
GET sorğusu

Bu, veb serverdən məlumat almaq üçün istifadə olunur.
POST sorğusu
Bu, məlumatları veb serverə göndərmək və potensial olaraq yeni qeydlər yaratmaq
üçün istifadə olunur
PUT sorğusu
Bu məlumatı yeniləmək üçün veb serverə məlumat göndərmək üçün istifadə olunur
DELETE sorğusu
Bu, veb serverdən məlumat/qeydləri silmək üçün istifadə olunur.

HTTP status codes:
Əvvəlki tapşırıqda siz öyrəndiniz ki, HTTP serveri cavab verəndə birinci sətir həmişə
müştəriyə sorğunun nəticəsini və onun potensial olaraq necə idarə olunacağını bildirən
status kodunu ehtiva edir. Bu status kodları 5 müxtəlif diapazona bölünə bilər:


100-199 – Məlumat cavabı Bunlar müştəriyə sorğusunun birinci hissəsinin qəbul edildiyini bildirmək üçün
göndərilir və onlar sorğunun qalan hissəsini təqdim etməyə davam etməlidirlər.
200-299 – Uğur Bu status kodu diapazonu müştəriyə sorğuların uğurlu olduğunu bildirmək üçün
istifadə olunur.
300-399 – Yenidən yönləndirmə Bunlar müştərinin sorğusunu başqa mənbəyə yönləndirmək üçün istifadə olunur.
Bu, başqa bir veb-səhifəyə və ya tamamilə fərqli bir veb-sayta aid ola bilər.
400-499 – Müştəri Səhvləri Müştərinin sorğusunda xəta olduğunu bildirmək üçün istifadə olunur.
500-599 – Server xətaları Bu, server tərəfində baş verən səhvlər üçün istifadə olunur və adətən sorğunu
emal edən serverdə problem olduğunu bildirir.
Ümumi HTTP Status Kodları:
Çoxlu müxtəlif HTTP status kodları var. Bu yazıda rastlaşa biləcəyiniz ən
ümumi HTTP cavablarını nəzərdən keçirəcəyik:
200 – OK Sorğu uğurla tamamlandı.
201 – Created Resurs yaradılıb (məsələn, yeni istifadəçi və ya yeni bloq yazısı).
301 – Moved Permanently Bu, müştərinin brauzerini yeni veb səhifəyə yönləndirir və ya axtarış motorlarına
səhifənin başqa yerə köçdüyünü bildirir..
302 – Found Yuxarıdakı daimi yönləndirməyə bənzər, lakin adından da göründüyü kimi, bu,
sadəcə müvəqqəti dəyişiklikdir və yaxın gələcəkdə yenidən dəyişə bilər..
400 – Bad Request Bu, brauzerə sorğularında nəyinsə səhv olduğunu və ya çatışmadığını bildirir.
Bu bəzən tələb olunan veb server resursu müştərinin göndərmədiyi xüsusi
parametr gözlədiyi halda istifadə edilə bilər.
401 – Not Authorised Veb tətbiqində, adətən istifadəçi adı və şifrə ilə icazə verməyincə bu resursa
baxmaq icazəniz yoxdur.
403 – Forbidden Daxil olub-olmamağınızdan asılı olmayaraq bu resursa baxmaq icazəniz yoxdur.
405 – Method Not Allowed Resurs bu metod sorğusuna icazə vermir, məsələn, GET POST sorğusunu
gözləyərkən bunun əvəzinə /create-count resursuna sorğu edilir.
404 – Page Not Found Tələb etdiyiniz səhifə/resurs mövcud deyil.
500 – Internal Service Error Server sorğunuzla bağlı bir növ xəta ilə qarşılaşdı və o, necə düzgün idarə
olunacağını bilmir.
503 – Service Unavailable Bu server sorğunuzu idarə edə bilməz, çünki o, həddən artıq yüklənib və ya
texniki xidmət üçün sıradan çıxıb.


Başlıqlar
Başlıqlar sorğu edərkən veb serverə göndərə biləcəyiniz əlavə məlumat parçalarıdır.
HTTP sorğusu edərkən heç bir başlıq mütləq lazım olmasa da, veb saytı düzgün
göstərməkdə çətinlik çəkəcəksiniz.
Ümumi Sorğu Başlıqları

Bunlar müştəridən (adətən brauzerinizdən) serverə göndərilən başlıqlardır.
Host: Bəzi veb serverlər birdən çox veb-sayta sahibdirlər, buna görə də host
başlıqlarını təqdim etməklə hansını istədiyinizi deyə bilərsiniz, əks halda server üçün
standart veb-sayt əldə edəcəksiniz.
İstifadəçi-Agent: Bu, brauzerinizin proqram təminatı və versiya nömrəsidir, veb-serverə
brauzerinizin proqram təminatı vebsaytı brauzerinizə uyğun şəkildə formatlamağa
kömək edir və həmçinin HTML, JavaScript və CSS-in bəzi elementləri yalnız müəyyən
brauzerlərdə mövcuddur.
Məzmun uzunluğu: Forma kimi veb serverə məlumat təqdim edərkən məzmun
uzunluğu veb serverə veb sorğusunda nə qədər məlumat gözlədiyini bildirir. Bu yolla
server heç bir məlumatı əldən vermədiyinə əmin ola bilər.
Qəbul et-kodlaşdırma: Veb serverə brauzerin hansı növ sıxılma üsullarını
dəstəklədiyini bildirir, beləliklə internet üzərindən ötürülmə üçün verilənləri kiçildə bilsin.
Kuki: Məlumatlarınızı yadda saxlamaq üçün serverə göndərilən məlumatlar.\


Ümumi Cavab Başlıqları
Bunlar sorğudan sonra serverdən müştəriyə qaytarılan başlıqlardır.
Set-Cookie: Hər sorğu ilə veb serverə geri göndəriləcək məlumatın saxlanması (ətraflı
məlumat üçün kuki tapşırığına baxın).
Cache-Control: Cavabın məzmunu yenidən tələb olunmazdan əvvəl brauzerin keşində
nə qədər müddət saxlanılacaq.
Məzmun növü: Bu, müştəriyə hansı növ məlumatların qaytarıldığını bildirir, yəni HTML,
CSS, JavaScript, Şəkillər, PDF, Video və s. Brauzer məzmun tipli başlıqdan istifadə
edərək məlumatları necə emal edəcəyini bilir.
Məzmunun Kodlanması: İnternet üzərindən göndərilərkən məlumatları kiçik etmək
üçün sıxışdırmaq üçün hansı üsuldan istifadə olunur.


Kukilər
Siz yəqin ki, əvvəllər kukilər haqqında eşitmisiniz, onlar kompüterinizdə saxlanılan kiçik
bir məlumat parçasıdır. Siz veb serverdən “Set-Cookie” başlığını aldığınız zaman
kukilər saxlanılır. Daha sonra etdiyiniz hər sorğu ilə kuki məlumatlarını yenidən veb
serverə göndərirsiniz. HTTP status məlumatı olmadığından (əvvəlki sorğularınızı
izləmir), kukilərdən veb serverə kim olduğunuzu, vebsayt üçün bəzi şəxsi
parametrlərinizi və ya əvvəllər vebsaytda olub-olmadığınızı xatırlatmaq üçün istifadə edilə bilər.

Kukilər bir çox məqsədlər üçün istifadə edilə bilər, lakin ən çox veb-saytın
autentifikasiyası üçün istifadə olunur. Kuki dəyəri adətən parolu görə biləcəyiniz aydın
mətn sətri deyil, işarə (asanlıqla təxmin edilə bilməyən unikal gizli kod) olacaqdır.


Kukilərinizin Baxılması
Brauzerinizdəki developer alətlərindən istifadə edərək brauzerinizin hansı kukiləri
vebsayta göndərdiyini asanlıqla görə bilərsiniz. Brauzerinizdə tərtibatçı alətlərinə necə
daxil olacağınızdan əmin deyilsinizsə, təlimat üçün bu tapşırığın yuxarısındakı “Sayta
Baxış” düyməsini klikləyin.
Geliştirici alətlərini açdıqdan sonra “Şəbəkə” hissəsini vurun. Bu tab sizə brauzerinizin
tələb etdiyi bütün resursların siyahısını göstərəcək. Sorğunun və cavabın ətraflı təsvirini
əldə etmək üçün hər birinin üzərinə klikləyə bilərsiniz. Brauzeriniz kuki göndəribsə, siz
onları sorğunun “Kukilər” sekmesinde görəcəksiniz.

Mehran Hematyar (Hemmatyar)

Ph.D (c) Mikrotik Cisco Official Trainer CyberSecurity Activist AzTU - UNEC - BMU - BANM Senior Lecturer

Leave a Reply

Your email address will not be published. Required fields are marked *