💻HTTP Only Flag

HTTP Only Flag nədir?

Veb saytların təhlükəsizliyini artırmaq üçün istifadə edilən bir təhlükəsizlik tədbiridir. Bu özəllik çərəzlərin (cookies) yalnız veb brauzer tərəfindən serverə göndərilməsini təmin edir və JavaScript kimi brauzerdə işə düşən kodların bu çərəzlərə müraciət etməsini əngəlləyir. Bu da, pisniyyətli hakerlərin çərəzlərinizi ələ keçirməsini və vacib məlumatlarınızı oğurlamasının qarşısını alır.

Nümunə

Fərz edək ki, bir veb saytda hesabınıza giriş etmisiniz və sayt sizin kim olduğunuzu xatırlamaq üçün bir çəzər (cookie) yaradıb. Bu çərəzdə sizin giriş məlumatlarınız saxlanılır.

Normalda JavaScript ilə çərəzləri oxumaq mümkündür:

console.log(document.cookie);  // Bu kod, çərəzləri ekrana çıxarır.

Ancaq HTTP Only Flag istifadə edilsə, çərəz belə yaradılacaq:

Set-Cookie: sessionId=abc123; HttpOnly

Bu halda, yuxarıdakı JavaScript kodu, çərəzləri ekrana çıxarmır.

İcmal

  • Müraciət: Çərəzlərin yalnız veb brauzer və server ararında istifadə edilməsini təmin edir və bu çərəzlər, yalnız HTTP və ya HTTPS protokolları üzərindən göndərilə bilir.

  • JavaScript: Pisniyyətli bir haker, XSS hücumu təşkil etməyə çalışsa, JavaSciprt istifadə edərək çərəzləri oxuya və oğurlaya bilməz, çünki HTTP Only Flag, JavaScript kodlarının çərəzlərə müraciətini əngəlləyir.

İstifadəsi

HTTP Only Flag, bir sayt yaradılarkən istifadə edilə bilər və edilməsi mütləqdir. Xüsusilə də, istifadəçilərin giriş məlumatları kimi həssas dataların çərəzlərdə saxlanıldığını nəzərə alsaq, bu özəllik ilə çərəzlərin təhlükəsizliyini artıra bilərik.

PHP dilində istifadəsi

PHP-də setcookie funksiyası ilə HTTP Only Flag-i əlavə edə bilərik.

setcookie("sessionid", "12345", [
    'httponly' => true,
    'secure' => true, // Yalnız HTTPS üzərindən göndərilir
    'samesite' => 'Strict' // CSRF hücumlarının qarşısını almağa kömək edir
]);

Node.js (Express) ilə istifadə

Node.js və Express istifadə edərək çərəz yaradarkən res.cookie funksiyasını istifadə edə bilərik.

res.cookie('sessionid', '12345', {
  httpOnly: true,
  secure: true, // Yalnız HTTPS üzərindən göndərilir
  sameSite: 'Strict' // CSRF hücumlarının qarşısını almağa kömək edir
});

Python (Flask) ilə istifadə

Python və Flask ilə çərəz yaradarkən response.set_cookie funksiyasını istifadə edə bilərik.

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/')
def index():
    response = make_response("Salam Dünya")
    response.set_cookie('sessionid', '12345', httponly=True, secure=True, samesite='Strict')
    return response

Bu nümunələrdə httponly flag-indən əlavə securesamesite flag-ləri də istifadə olunmuşdur. secure flag-i çərəzlərin yalnız HTTPS üzərindən göndərilməsini təmin edir. samesite flag-i isə CSRF hücumlarının qarşısını almağa kömək edir. Ümumilikdə bu əlavə flag-lər, çərəzlərin təhlükəsizliyini artırmağa kömək edir.

Last updated