npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

safety-safe2

v0.0.1

Published

Firewall cerdas untuk menganalisis objek pesan dan mendeteksi potensi ancaman seperti bug/crash/spam.

Downloads

78

Readme

Safety-Safe2 v0.0.1

Sistem Firewall untuk Analisis Pesan.

NPM Version NPM License

Sistem Anda sering mengalami crash atau lag parah akibat pesan-pesan mencurigakan? Sering terganggu oleh serangan dari pengguna tidak dikenal? safety-safe2 adalah solusi firewall ringan yang dirancang untuk menyaring pesan-pesan masuk dari berbagai jenis bug, spam, atau pesan berbahaya lainnya.


Keunggulan Produk

  • 🛡️ Keamanan Berlapis: Sistem deteksi telah ditanamkan untuk berbagai jenis serangan, dari teks yang terlalu panjang, mention ribuan kontak, hingga bug pada dokumen dan lokasi yang sering menyebabkan aplikasi crash.
  • ⚡ Ringan dan Efisien: Tidak memiliki dependensi eksternal. Tidak akan memperbesar ukuran folder node_modules. Fokus utama adalah keamanan.
  • 🔧 Konfigurasi Fleksibel: Sistem dapat disesuaikan dengan kebutuhan. Atur ambang batas toleransi untuk setiap jenis ancaman sesuai kebijakan sistem Anda.
  • 🔌 Mudah Diintegrasikan: Didesain untuk integrasi yang mudah dengan berbagai sistem.

Instalasi

Instalasi dapat dilakukan dengan perintah berikut:

npm install safety-safe2

Prinsip Kerja

safety-safe2 berfungsi seperti sistem alarm keamanan. Tugas utamanya adalah memberikan sinyal peringatan ketika ditemukan ancaman (isMalicious: true). Modul ini tidak bertugas untuk menangani ancaman secara langsung. Sebagai administrator sistem, Anda yang menentukan tindakan selanjutnya: apakah akan menindaklanjuti, mencatat, atau mengabaikan peringatan tersebut.

Pemisahan tanggung jawab ini membuat safety-safe2 tetap ringan dan memberikan kontrol penuh kepada Anda dalam menentukan tindakan yang paling sesuai untuk sistem Anda.

Fitur Utama

  • Modular Design: Sistem deteksi dibagi menjadi modul-modul spesifik
  • Ekstraksi Pengirim: Fungsi untuk mendapatkan informasi pengirim
  • Respons Berjenjang: Severity (CRITICAL/HIGH/MEDIUM) dan threatType (CRASH/LAG/SPAM)
  • Konfigurasi Fleksibel: Kemampuan untuk menyesuaikan ambang batas deteksi
  • Pemblokiran Otomatis: Dapat digunakan untuk memblokir pengirim pesan berbahaya
  • Database Ancaman: Sistem penyimpanan JSON untuk melacak ancaman dan statistik
  • Rate Limiting: Deteksi pengiriman pesan berlebihan dalam waktu singkat
  • Deteksi Kesamaan Konten: Identifikasi pesan-pesan yang sangat mirip atau identik
  • Deteksi Payload Berbahaya: Pengenalan pola-pola berbahaya seperti command injection
  • Deteksi Ancaman Media: Pemeriksaan metadata file media yang dikirim

Contoh Implementasi Dasar

Berikut adalah contoh implementasi umum. Jika ditemukan pesan berbahaya, sistem akan mengambil tindakan sesuai kebijakan sistem.

import { analyzeMessageWithSender } from 'safety-safe2';

// Contoh: Analisis pesan yang diterima
const incomingMessage = { /* objek pesan yang diterima */ };

// 1. Analisis pesan menggunakan safety-safe2
const { isMalicious, reason, severity, threatType, sender } = analyzeMessageWithSender(incomingMessage);

// 2. Jika ditemukan ancaman, lakukan tindakan yang sesuai!
if (isMalicious) {
    console.log(`[!] Ancaman Terdeteksi: ${reason}`);
    console.log(`    Level Bahaya: ${severity} | Jenis: ${threatType} | Pengirim: ${sender}`);

    // CONTOH TINDAKAN: Blokir pengirim, hapus pesan, log aktivitas, dll.
    // Contoh: blokir pengirim otomatis
    if (sender) {
        // Tambahkan logika blokir pengirim di sini
        console.log(`Pengirim ${sender} telah diblokir otomatis.`);
    }

    return; // Penting: Hentikan pemrosesan pesan ini lebih lanjut
}

// Jika pesan aman, lanjutkan logika sistem normal di sini...
console.log(`[+] Pesan aman`);
// ...

Konfigurasi Lanjutan

Anda dapat menyesuaikan "tingkat sensitivitas" sistem. Cukup berikan objek konfigurasi sebagai parameter kedua.

import { analyzeMessage } from 'safety-safe2';

// Aturan kustom yang lebih ketat dari nilai bawaan
const myRules = {
    maxTextLength: 4096,
    maxMentions: 25,
    maxFileLength: 100 * 1024 * 1024, // 100MB
    maxRepetitionRatio: 0.5  // 50% ambang batas pengulangan
};

const { isMalicious } = analyzeMessage(msg.message, myRules);

Fungsi Tambahan

Selain fungsi utama analyzeMessage, safety-safe2 juga menyediakan fungsi tambahan untuk manajemen ancaman:

import {
  analyzeMessage,
  getThreatStatistics,
  getSenderThreatHistory,
  unblockSender,
  resetSenderThreatRecord
} from 'safety-safe2';

// Dapatkan statistik ancaman keseluruhan
const stats = getThreatStatistics();
console.log('Statistik ancaman:', stats);

// Dapatkan riwayat ancaman dari pengirim tertentu
const history = getSenderThreatHistory('[email protected]');
console.log('Riwayat ancaman:', history);

// Hapus pengirim dari daftar blokir
unblockSender('[email protected]');

// Reset riwayat ancaman pengirim
resetSenderThreatRecord('[email protected]');

Daftar Konfigurasi Lengkap:

| Opsi | Default | Deskripsi | | :--- | :--- | :--- | | maxTextLength | 10000 | Panjang maksimum teks/keterangan yang diizinkan. | | maxMentions | 100 | Jumlah maksimum mention dalam satu pesan. | | maxFileLength | 2147483648 (2 GB) | Ukuran maksimum file (dalam byte) yang tertera di properti pesan. | | maxPageCount | 10000 | Jumlah maksimum halaman di properti dokumen. | | maxCharacterFlood | 20000 | Jumlah maksimum karakter dalam pesan interaktif (untuk mencegah bug flood). | | maxHostnameLength | 100 | Panjang maksimum hostname dalam URL. | | maxPathLength | 500 | Panjang maksimum path dalam URL. | | maxRepetitionRatio | 0.7 | Rasio maksimum pengulangan karakter tunggal dalam pesan (0.0 - 1.0). | | maxHexSequence | 10 | Jumlah maksimum urutan heksadesimal dalam payload. | | minObfuscationScore | 0.3 | Skor minimum karakter non-terbaca untuk mendeteksi payload terenkripsi. |

Penjelasan Hasil Analisis

Fungsi analyzeMessage mengembalikan objek berisi informasi penting:

| Properti | Tipe | Penjelasan | | :--- | :--- | :--- | | isMalicious| boolean | true jika berbahaya, false jika aman. Ini adalah properti utama. | | reason | string | Alasan mengapa pesan ditandai sebagai berbahaya. | | severity | string | Tingkat keparahan: CRITICAL, HIGH, atau MEDIUM. | | threatType| string | Jenis ancaman: CRASH, LAG, atau SPAM. | | sender| string | Jika tersedia, ID pengirim pesan. |

Jenis Ancaman yang Dideteksi

  • [x] Teks atau Keterangan yang Terlalu Panjang
  • [x] Banjir Karakter di Pesan Interaktif
  • [x] Mention Massal (Ribuan Kontak)
  • [x] Dokumen dengan Properti Palsu (fileLength, pageCount)
  • [x] Lokasi dengan Koordinat Tidak Valid (Menyebabkan Crash)
  • [x] URL Mencurigakan (berbasis IP, hostname/path terlalu panjang)
  • [x] Payload Terenkripsi (urutan heksadesimal, karakter acak)
  • [x] Pola Flood Karakter (pengulangan tinggi)
  • [x] Dan berbagai bug perusak lainnya.

Kontribusi

Menemukan bug baru atau memiliki ide pengembangan? Silakan buka Issue atau kirimkan Pull Request di GitHub. Kontribusi Anda sangat kami hargai!

Lisensi

Proyek ini menggunakan Lisensi MIT.