Brauzer İcra Mühiti
Bu bələdçi Noxtica SDK-sının ziyarətçilərinizin brauzerlərinin içindəki işini izah edir — qiymətləndirmə zamanı nə baş verir, keşləmənin hər şeyi necə sürətli saxladığı və ümumi problemlər necə həll edilir.
Necə İşləyir
Noxtica SDK-sını səhifənizə əlavə etdikdə, o, arxada dörd şey edir:
- Doğrulama: Sizin üçün idarə etdiyi kredensiyal-larla Site Key istifadə edərək daxil olur
- Toplama: Brauzerin artıq ifşa etdiyi adi siqnalları oxuyur
- Göndərmə: Skorlama üçün Noxtica-ya göndərir
- Keşləmə: Nəticəni yerli olaraq saxlayır ki, hər ziyarətdə işi təkrar etməsin
Bunların hamısı arxa planda işləyir və heç vaxt səhifənizi bloklamır.
Toplama Axını
Avtomatik (Tövsiyə Edilir)
data-auto-check-once istifadə edərkən, SDK ağıllı toplama həyata keçirir:
<script
src="https://collect.noxtica.com/collector/noxtica.js"
data-site-key="pk_prod_your_site_key"
data-auto-init
data-auto-check-once
async
></script>
Content-security-policy istifadə edirsiniz? Noxtica-nın müdaxiləyə davamlı mühiti olan KHAN VM-i yükləmək və işlətmək üçün icazə verməlisiniz. Bunu edə bilməsə, Noxtica daha yüngül toplama forması ilə işləməyə davam edir, ancaq müdaxilə qoruması zəifləyir. Dəqiq kod parçası üçün Başlanğıc → Content Security Policy bölməsinə baxın.
İlk ziyarət: Tam qiymətləndirmə işləyir və nəticə keşlənir.
Sonrakı ziyarətlər (keş pəncərəsi içindəyken): Keşlənmiş nəticə qaytarılır və yüngül bir ziyarət qeydə alınır. Ağır iş işləmir.
Keş pəncərəsi bitdikdən sonra: Yeni qiymətləndirmə işləyir.
Əl ilə Nəzarət
Proqramatik nəzarət üçün checkOnce() metodundan istifadə edin:
const client = NoxticaCollector.createClient({
siteKey: 'pk_prod_your_site_key',
});
const result = await client.checkOnce();
if (result.fromCache) {
console.log('Using cached fingerprint');
console.log('Next collection in:', result.nextSubmitIn, 'days');
} else {
console.log('Fresh fingerprint collected');
}
Keşləmə Davranışı
SDK, hər nəticəni brauzerdə keşləyir ki, hər səhifə görüntüləməsindəki eyni ziyarətçini yenidən qiymətləndirməsin.
Keş Açarı
nox_fp_{your_site_key}
Keşlənənlər
- Cihaz ID-si
- Son göndərmə zaman damğası
- Son görülmə zaman damğası
- Əvvəlki risk skoru və səviyyəsi
TTL (Yaşama Müddəti)
Standart keş TTL 7 gündür. Bu konfiqurasiya edilə bilər:
// Toplama zamanı yenidən yazın
const result = await client.checkOnce({
checkIntervalDays: 14, // 7 əvəzinə 14 gün
});
// Və ya saniyələrlə
const result = await client.checkOnce({
ttlSeconds: 86400, // 1 gün
});
Zorla Yeniləmə
Keşi atlayıb yeni barmaq izi toplamaq üçün:
const result = await client.checkOnce({
forceRefresh: true,
});
Çoxlu Tab Koordinasiyası
Bir ziyarətçi saytınızın bir neçə tabını eyni anda açdıqda, SDK yalnız bir dəfə qiymətləndirilmələrini təmin edir:
- Yalnız bir tab həqiqi işi görür
- Digər tablar gözləyir və həmin nəticəni paylaşır
Bu avtomatik baş verir — heç bir konfiqurasiya tələb olunmur.
Hadisələr
SDK dinləyə biləcəyiniz hadisələr göndərir:
noxtica:collected
Uğurlu toplama və ya keşlənmiş nəticə qaytarıldıqdan sonra baş verir:
document.addEventListener('noxtica:collected', (e) => {
console.log('Fingerprint ID:', e.detail.fingerprintId);
console.log('Risk Level:', e.detail.risk_level);
console.log('Score:', e.detail.score);
console.log('From Cache:', e.detail.fromCache);
});
noxtica:cache-hit
Xüsusi olaraq keşlənmiş nəticə qaytarıldıqda baş verir:
document.addEventListener('noxtica:cache-hit', (e) => {
console.log('Cache hit, days since submission:', e.detail.daysSinceSubmit);
});
noxtica:error
Toplama uğursuz olduqda baş verir:
document.addEventListener('noxtica:error', (e) => {
console.log('Error source:', e.detail.source);
console.log('Error message:', e.detail.message);
});
Qlobal Dəyişənlər
Toplamadan sonra nəticələr qlobal olaraq əlçatandır:
// Toplama tamamlandıqdan sonra
console.log(window.noxticaResult);
// Müştəri nümunəsi (auto-init istifadə edərkən)
console.log(window.noxticaClient);
// Son xəta (varsa)
console.log(window.noxticaLastError);
Xəta İdarəetmə
Ümumi Xətalar
| Xəta | Səbəb | Həll |
|---|---|---|
origin_mismatch | Site Key domeninizlə uyğun gəlmir | Domeninizin Backoffice-də qeydiyyatda olduğunu yoxlayın |
invalid_site_key | Site Key tapılmadı və ya deaktiv | Site Key-inizi yoxlayın, domenin aktiv olduğundan əmin olun |
token_expired | Token 5 dəqiqəlik TTL-i keçdi | Avtomatik — SDK yeni token tələb edəcək |
| Sorğu limiti (429) | Çox sorğu | Toplama tezliyini azaldın |
Xətaları Əl ilə İdarə Edin
try {
const result = await client.collectAndSubmit();
} catch (error) {
if (error.message.includes('origin_mismatch')) {
// Site key konfiqurasiya problemi
} else if (error.message.includes('rate')) {
// Geri çəkilin və sonra yenidən cəhd edin
}
}
Toplama Rejimləri
SDK üç toplama rejimini dəstəkləyir:
| Rejim | Təsvir | Nə Zaman İstifadə Etmək |
|---|---|---|
minimal | Kiçik əsas siqnallar toplusu | Sürətli toplama, az sürtünmə ssenariləri |
standard | Geniş siqnallar toplusu | Əksər istifadə halları (standart) |
max | Tam siqnallar toplusu | Maksimum dəqiqlik, yüksək təhlükəsizlik ssenarilər |
const client = NoxticaCollector.createClient({
siteKey: 'pk_prod_...',
mode: 'max', // və ya 'minimal', 'standard'
});
Qorunan Rejim (KHAN VM)
Botlarla mübarizənin ən çətin tərəfi budur ki, brauzerdə işləyən hər şey, prinsipcə, görünən və redaktə edilə biləndir. Qərarlı bir hücumçu səhifənin kodunu oxuya, nəyin ölçüldüyünü anlaya və gizlicə saxta cavablar qaytara bilər.
KHAN VM bunun xərcini qaldırır. Toplamanı səhifədə oxuna bilən kod kimi açıqda buraxmaq əvəzinə, Noxtica həssas hissəni möhürlənmiş, sandbox-lanmış mühitin içində işlədir. Nəyin ölçüləcəyinə qərar verən məntiq hücumçunun öyrənib yenidən yaza biləcəyi yerdə açıqda durmur, yaratdığı nəticə isə brauzerdən çıxmazdan əvvəl möhürlənir — beləliklə müdaxilə etmək və ya təkrar oynamaq çox daha çətindir.
KHAN VM-in kömək etdiyi şeylər:
- Müdaxiləyə davamlı nəticələr — qiymətləndirmə göndərilməzdən əvvəl sandbox-un içindəki möhürlənir, beləliklə səhifədəki digər skriptlər onu gizlicə dəyişdirə və ya təkrar oynada bilmir.
- Tərsinə mühəndislik etmək çətindir — toplama məntiqi brauzer developer alətlərindən oxuna biləcək yerda deyil, mühitin içindədir.
- Oynatma qoruması — hər nəticə birdəfəlik istifadə üçün və təsdiqlənmişdir, beləliklə ələ keçirilmiş cavab sadəcə yenidən istifadə edilə bilmir.
Dürüst həddlər — nə etmir:
- Bu, müdaxiləyə davamlılıq xüsusiyyətidir, ucdan-uca şifrələmə deyil.
- Öz səhifəniz məruz qalıbsa (məsələn, saytlararası skript zəifliyi ilə), həmin səhifədəki bir hücumçu Noxtica-nın gördüyü eyni xam brauzer siqnallarını görə bilər. KHAN VM emal prosesini və nəticəni qoruyur, onun ətrafındakı səhifəni deyil.
KHAN VM server tərəfindən aktivləşdirilir və inteqrasiyanıza heç bir dəyişiklik tələb etmir. Başlaya bilməsə — məsələn, content-security-policy onu blokladığı üçün — Noxtica aşkarlama işləməyə davam etsin deyə daha yüngül toplama formasına keçir, sadəcə müdaxilə qoruması zəifləyir.
Brauzer Dəstəyi
SDK müasir brauzerləri dəstəkləyir:
| Brauzer | Minimum Versiya |
|---|---|
| Chrome | 70+ |
| Firefox | 65+ |
| Safari | 12+ |
| Edge | 79+ |
Köhnə brauzerlər azaldılmış siqnal dəqiqliyinə malik ola bilər, lakin hələ işləyəcəklər.
Debug Rejimi
Problemləri həll etmək üçün debug loqlamasını aktiv edin:
// SDK yüklənməzdən əvvəl
globalThis.NOXTICA_DEBUG = true;
// Və ya hər müştəri üçün
const client = NoxticaCollector.createClient({
siteKey: 'pk_prod_...',
debug: true,
});
// Və ya skript atributu ilə
<script src="..." data-debug></script>;
Debug rejimi loqlar:
- Toplama prosesi
- Token lifecycle-i
- Keş işlənmələri və işlənməmələri
- Hər hansı xətalar
Qeyd: Debug rejimi istehsalda standart olaraq səssizdir. Açıq şəkildə aktiv edilmədikçə konsol çıxışı görünmür.
Yaddaş Mülahizələri
Brauzer Yaddaşı
SDK nəticələri keşləmək üçün brauzer local storage-indən istifadə edir. Bu əlçatan deyilsə (məsələn, gizli gəzmə rejimində və ya yaddaş deaktiv edilibsə):
- Aşkarlama hələ işləyir
- Hər səhifə yükləməsi yeni qiymətləndirmə həyata keçirir
- Çoxlu tab koordinasiyası azala bilər
Cookie Yoxdur
SDK cookie-dən istifadə etmir. Lazım olan hər şey brauzer local storage-ında saxlanılır.
Performans Təsiri
İlk Ziyarət
| Əməliyyat | Tipik Müddət |
|---|---|
| Token sorğusu | 50-100ms |
| Siqnal toplaması | 200-500ms |
| Göndərmə | 50-150ms |
| Cəmi | 300-750ms |
Toplama asinxron işləyir və səhifə renderini bloklamır.
Sonrakı Ziyarətlər (Keş Vurması)
| Əməliyyat | Tipik Müddət |
|---|---|
| Keş yoxlaması | <1ms |
| Ziyarət qeydiyyatı | 50-100ms |
| Cəmi | 50-100ms |
Problemlərin Həlli
Barmaq İzi Toplanmadı
- Brauzer konsolunda xətaları yoxlayın
- Site Key-in domeninizlə tam uyğun olduğunu yoxlayın (
https://daxil) - Domenin Backoffice-də aktiv olduğundan əmin olun
- Ətraflı loqlar görmək üçün debug rejimini aktiv edin
”WebAssembly Content Security Policy tərəfindən bloklandı”
Bu xəbərdarlığı brauzer konsolunda görürsünüzsə, səhifənizin content-security-policy-si müdaxiləyə davamlı mühiti (KHAN VM) bloklayır. Aşkarlama daha yüngül rejimdə işləməyə davam edir, lakin ən güclü qorumaya icazə verərək əldə edə bilərsiniz.
Noxtica-nın yüklənib işləməsinə icazə vermək üçün aşağıdakı kod parçasını istifadə edin:
Content-Security-Policy: script-src 'self' 'wasm-unsafe-eval' https://collect.noxtica.com; connect-src 'self' https://collect.noxtica.com
Tam arayış üçün Başlanğıc → Content Security Policy bölməsinə baxın.
Eyni Cihazda Fərqli Cihaz ID-ləri
Bu, aşağıdakı hallarda baş verə bilər:
- Brauzerin saxlanmış məlumatları silinib
- Brauzer profili dəyişib
- Ziyarətçi gizli/inkognito rejimdən istifadə edir
- Brauzer böyük bir yeniləmədən keçib
Bu gözləniləndir — tanınma cihaz zamanla dəyişdikcə uyğunlaşır.
Toplama Çox Uzun Çəkir
- Yavaş API cavabları üçün şəbəkə tabını yoxlayın
- Daha sürətli toplama üçün
mode: 'minimal'istifadəsini nəzərdən keçirin - SDK-nın
asyncatributu ilə yükləndiğindən əmin olun
Hadisələr Baş Vermir
- SDK işləməzdən əvvəl dinlədiyinizdən əmin olun
- Auto-init atributlarının düzgün olduğunu yoxlayın
- İcranı bloklayan JavaScript xətaları olmadığından əmin olun
Ən Yaxşı Təcrübələr
-
data-auto-check-onceistifadə edin — artıq toplama minimuma endirmək üçündata-auto-collectəvəzinə -
SDK-nı asinxron yükləyin — səhifə yükləməsini bloklamaqdan çəkinmək üçün
asyncatributu ilə -
Hadisələri dinləyin —
window.noxticaResult-u sorğulamaq əvəzinə -
TTL-i lazımsız yerə dəyişdirməyin — standart 7 günlük interval əksər istifadə halları üçün optimallaşdırılmışdır
-
Xətaları zərif şəkildə idarə edin — toplama uğursuzluğu səhifənizi sındırmamalıdır
Növbəti Addımlar
- Başlanğıc — İlkin quraşdırma bələdçisi
- Backend İnteqrasiyası — Server tərəfi cihaz axtarışları