Runtime Pelayar
Panduan ini menerangkan cara SDK Noxtica berfungsi di dalam pelayar pelawat anda — apa yang berlaku semasa penilaian, cara caching memastikan keadaan pantas, dan cara menyelesaikan masalah biasa.
Cara Ia Berfungsi
Apabila anda menambah SDK Noxtica ke halaman anda, ia secara senyap melakukan empat perkara:
- Sahkan: Log masuk dengan Site Key anda menggunakan kelayakan yang diuruskannya untuk anda
- Kumpul: Membaca isyarat biasa yang pelayar sudah terdedah
- Hantar: Menghantar isyarat itu kepada Noxtica untuk diberi skor
- Cache: Menyimpan hasilnya secara tempatan supaya ia tidak mengulangi kerja pada setiap kunjungan
Semua ini berjalan di latar belakang dan tidak pernah menghalang halaman anda.
Aliran Pengumpulan
Automatik (Disyorkan)
Apabila menggunakan data-auto-check-once, SDK menggunakan pengumpulan pintar:
<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>
Menggunakan content-security-policy? Anda perlu membenarkan Noxtica memuatkan dan menjalankan masa jalannya yang tahan gangguan, KHAN VM. Jika tidak boleh, Noxtica terus berfungsi dengan bentuk pengumpulan yang lebih ringan dan perlindungan gangguan yang lebih lemah. Lihat Memulakan → Content Security Policy untuk coretan tepat.
Kunjungan pertama: Penilaian penuh dijalankan dan hasilnya dicache.
Kunjungan seterusnya (dalam tetingkap cache): Hasil yang dicache dikembalikan dan kunjungan ringan direkodkan. Tiada kerja berat dijalankan.
Selepas tetingkap cache tamat tempoh: Penilaian segar dijalankan.
Kawalan Manual
Untuk kawalan aturcara, gunakan kaedah checkOnce():
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');
}
Tingkah Laku Caching
SDK menyimpan setiap hasil dalam pelayar supaya ia tidak menilai semula pelawat yang sama pada setiap paparan halaman.
Kunci Cache
nox_fp_{your_site_key}
Apa yang Dicache
- ID Peranti
- Cap masa penyerahan terakhir
- Cap masa dilihat terakhir
- Skor dan tahap risiko sebelumnya
TTL (Jangka Masa Hidup)
TTL cache lalai ialah 7 hari. Ini boleh dikonfigurasi:
// Override at collection time
const result = await client.checkOnce({
checkIntervalDays: 14, // 14 days instead of 7
});
// Or in seconds
const result = await client.checkOnce({
ttlSeconds: 86400, // 1 day
});
Paksa Muat Semula
Untuk memintas cache dan mengumpul cap jari baharu:
const result = await client.checkOnce({
forceRefresh: true,
});
Penyelarasan Merentas Tab
Apabila pelawat membuka beberapa tab tapak anda serentak, SDK memastikan mereka hanya dinilai sekali:
- Hanya satu tab yang melakukan kerja sebenar
- Tab lain menunggu dan berkongsi hasil itu
Ini berlaku secara automatik — tiada konfigurasi diperlukan.
Acara
SDK menghantar acara yang boleh anda dengar:
noxtica:collected
Dilepaskan selepas pengumpulan berjaya atau apabila hasil yang dicache dikembalikan:
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
Dilepaskan khusus apabila hasil yang dicache dikembalikan:
document.addEventListener('noxtica:cache-hit', (e) => {
console.log('Cache hit, days since submission:', e.detail.daysSinceSubmit);
});
noxtica:error
Dilepaskan apabila pengumpulan gagal:
document.addEventListener('noxtica:error', (e) => {
console.log('Error source:', e.detail.source);
console.log('Error message:', e.detail.message);
});
Pemboleh Ubah Global
Selepas pengumpulan, hasil boleh didapati secara global:
// After collection completes
console.log(window.noxticaResult);
// Client instance (when using auto-init)
console.log(window.noxticaClient);
// Last error (if any)
console.log(window.noxticaLastError);
Pengendalian Ralat
Ralat Biasa
| Ralat | Punca | Penyelesaian |
|---|---|---|
origin_mismatch | Site Key tidak sepadan dengan domain anda | Sahkan domain anda didaftarkan dalam Backoffice |
invalid_site_key | Site Key tidak ditemui atau dinyahaktifkan | Semak Site Key anda dan pastikan domain diaktifkan |
token_expired | Token melebihi TTL 5 minit | Automatik — SDK akan meminta token baharu |
| Had kadar (429) | Terlalu banyak permintaan | Kurangkan kekerapan pengumpulan |
Mengendalikan Ralat Secara Manual
try {
const result = await client.collectAndSubmit();
} catch (error) {
if (error.message.includes('origin_mismatch')) {
// Site key configuration issue
} else if (error.message.includes('rate')) {
// Back off and retry later
}
}
Mod Pengumpulan
SDK menyokong tiga mod pengumpulan:
| Mod | Penerangan | Bila Hendak Digunakan |
|---|---|---|
minimal | Set teras kecil isyarat | Pengumpulan pantas, senario geseran rendah |
standard | Set isyarat yang luas | Kebanyakan kes penggunaan (lalai) |
max | Set isyarat penuh | Ketepatan maksimum, senario keselamatan tinggi |
const client = NoxticaCollector.createClient({
siteKey: 'pk_prod_...',
mode: 'max', // or 'minimal', 'standard'
});
Mod Terlindung (KHAN VM)
Bahagian tersukar dalam melawan bot ialah bahawa apa sahaja yang berjalan dalam pelayar, pada dasarnya, kelihatan dan boleh disunting. Penyerang yang gigih boleh membaca kod halaman, mengetahui apa yang sedang diukur, dan secara senyap menghantar balik jawapan palsu.
KHAN VM meningkatkan kos itu. Daripada membiarkan pengumpulan terdedah secara terbuka sebagai kod yang boleh dibaca di halaman, Noxtica menjalankan bahagian sensitif di dalam masa jalan yang tertutup dan berpasir. Logik yang memutuskan apa yang hendak diukur tidak tersedia secara jelas untuk penyerang mengkaji dan menulis semula, dan hasil yang dihasilkan ditutup sebelum meninggalkan pelayar — jadi jauh lebih sukar untuk diganggu atau dimainkan semula.
Apa yang KHAN VM bantu:
- Hasil tahan gangguan — penilaian ditutup di dalam kotak pasir sebelum dihantar, jadi skrip lain di halaman tidak boleh mengubah atau memainkan semulanya secara senyap.
- Lebih sukar untuk kejuruteraan terbalik — logik pengumpulan kekal tersembunyi di dalam masa jalan dan bukannya boleh dibaca dalam alat pembangun pelayar.
- Perlindungan ulang tayang — setiap hasil adalah satu kali guna dan disahkan, jadi respons yang ditangkap tidak boleh digunakan semula begitu sahaja untuk meniru pelawat bersih.
Had yang jujur — apa yang tidak dilakukannya:
- Ia adalah ciri rintangan gangguan, bukan penyulitan hujung ke hujung.
- Jika halaman anda sendiri dikompromi (contohnya, oleh kelemahan skrip silang tapak), penyerang di halaman itu boleh melihat isyarat pelayar mentah yang sama yang Noxtica lihat. KHAN VM melindungi pemprosesan dan hasilnya, bukan halaman di sekelilingnya.
KHAN VM dihidupkan dari sisi pelayan dan tidak memerlukan perubahan pada integrasi anda. Jika tidak boleh dimulakan — contohnya, kerana content-security-policy menyekatnya — Noxtica beralih kepada bentuk pengumpulan yang lebih ringan supaya pengesanan terus berfungsi, hanya dengan perlindungan gangguan yang lebih lemah.
Sokongan Pelayar
SDK menyokong pelayar moden:
| Pelayar | Versi Minimum |
|---|---|
| Chrome | 70+ |
| Firefox | 65+ |
| Safari | 12+ |
| Edge | 79+ |
Pelayar yang lebih lama mungkin mempunyai ketepatan isyarat yang berkurang tetapi akan tetap berfungsi.
Mod Debug
Aktifkan log debug untuk menyelesaikan masalah:
// Before SDK loads
globalThis.NOXTICA_DEBUG = true;
// Or per-client
const client = NoxticaCollector.createClient({
siteKey: 'pk_prod_...',
debug: true,
});
// Or via script attribute
<script src="..." data-debug></script>;
Mod debug mencatat:
- Kemajuan pengumpulan
- Kitar hidup token
- Cache hit dan miss
- Sebarang ralat yang ditemui
Nota: Mod debug adalah senyap secara lalai dalam pengeluaran. Tiada output konsol dipaparkan melainkan diaktifkan secara eksplisit.
Pertimbangan Storan
Storan Pelayar
SDK menggunakan storan tempatan pelayar untuk men-cache hasil. Jika tidak tersedia (contohnya, dalam pelayaran peribadi atau storan dinyahaktifkan):
- Pengesanan masih berfungsi
- Setiap muat halaman menjalankan penilaian segar
- Penyelarasan merentas tab mungkin berkurang
Tiada Kuki
SDK tidak menggunakan kuki. Semua yang diperlukannya disimpan dalam storan tempatan pelayar.
Kesan Prestasi
Kunjungan Pertama
| Operasi | Masa Tipikal |
|---|---|
| Token request | 50-100ms |
| Signal collection | 200-500ms |
| Submission | 50-150ms |
| Jumlah | 300-750ms |
Pengumpulan berjalan secara tak segerak dan tidak menghalang pemaparan halaman.
Kunjungan Seterusnya (Cache Hit)
| Operasi | Masa Tipikal |
|---|---|
| Cache check | <1ms |
| Visit recording | 50-100ms |
| Jumlah | 50-100ms |
Penyelesaian Masalah
Cap Jari Tidak Dikumpul
- Semak konsol pelayar untuk ralat
- Sahkan Site Key sepadan tepat dengan domain anda (termasuk
https://) - Pastikan domain diaktifkan dalam Backoffice
- Aktifkan mod debug untuk melihat log terperinci
”WebAssembly blocked by Content Security Policy”
Jika anda melihat amaran ini dalam konsol pelayar, content-security-policy halaman anda sedang menyekat masa jalan tahan gangguan (KHAN VM). Pengesanan terus berfungsi dalam mod yang lebih ringan, tetapi anda akan mendapat perlindungan terkuat dengan membenarkannya.
Gunakan coretan di bawah untuk membenarkan Noxtica memuatkan dan berjalan:
Content-Security-Policy: script-src 'self' 'wasm-unsafe-eval' https://collect.noxtica.com; connect-src 'self' https://collect.noxtica.com
Lihat Memulakan → Content Security Policy untuk rujukan penuh.
ID Peranti Berbeza pada Peranti Yang Sama
Ini boleh berlaku apabila:
- Data storan pelayar dibersihkan
- Profil pelayar berubah
- Pelawat menggunakan mod persendirian/inkognito
- Pelayar menjalani kemas kini besar
Ini adalah tingkah laku yang dijangkakan — pengenalan menyesuaikan diri apabila peranti berubah dari masa ke masa.
Pengumpulan Mengambil Masa Terlalu Lama
- Semak tab rangkaian untuk respons API yang perlahan
- Pertimbangkan menggunakan
mode: 'minimal'untuk pengumpulan lebih pantas - Pastikan SDK dimuatkan dengan atribut
async
Acara Tidak Dilepaskan
- Pastikan anda mendengar sebelum SDK dijalankan
- Semak bahawa atribut auto-init betul
- Sahkan tiada ralat JavaScript yang menghalang pelaksanaan
Amalan Terbaik
-
Gunakan
data-auto-check-oncedan bukannyadata-auto-collectuntuk meminimumkan pengumpulan berulang -
Muatkan SDK secara tak segerak dengan atribut
asyncuntuk mengelak halangan muat halaman -
Dengar acara dan bukannya mengundi
window.noxticaResult -
Jangan timpa TTL tanpa keperluan — selang lalai 7 hari dioptimumkan untuk kebanyakan kes penggunaan
-
Tangani ralat dengan baik — kegagalan pengumpulan tidak sepatutnya merosakkan halaman anda
Langkah Seterusnya
- Memulakan - Panduan persediaan awal
- Integrasi Backend - Carian peranti sisi pelayan