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

rn-security-audit

v1.3.0

Published

React Native mobil uygulamalar için güvenlik denetim aracı

Readme

RN Security Audit

npm version npm downloads Self Test Known Vulnerabilities GitHub stars GitHub Marketplace License: MIT Node.js

React Native mobil uygulamalarda güvenlik açıklarını otomatik olarak tespit eden araç.

Projenin dizinini ver, çalıştır — sana ne eksik, ne tehlikeli, nasıl düzeltirsin söyler.


Kurulum (Bir kez yapılır)

Node.js kurulu olmalı

Node.js yoksa: nodejs.org adresinden LTS sürümü indir ve kur.

Paketi global olarak yükle

npm install -g rn-security-audit

Bu kadar. Artık bilgisayarında her yerden kullanılabilir.


Kullanım (Her yeni proje için)

Terminal'i aç ve şunu yaz:

rn-security-audit /PROJE/DIZINI

Örnek:

rn-security-audit ~/Documents/benim-uygulama

Proje dizini = package.json dosyasının bulunduğu klasör.

Dizini bilmiyorsan: Terminalde projenin içindeyken pwd yaz, çıkan yolu kopyala.


Tek seferlik çalıştırmak için (yükleme yapmadan)

npx rn-security-audit /PROJE/DIZINI

Sonuçları Okuma

Çalıştırınca şuna benzer bir çıktı göreceksin:

━━━ 1. AndroidManifest Güvenlik Kontrolleri
  [GEÇTİ]    usesCleartextTraffic kapalı
  [KRİTİK]   allowBackup eksik
             → Öneri: android:allowBackup="false" ekleyin.
  [UYARI]    dataExtractionRules tanımlanmamış

━━━ 2. Hardcoded Credential & Email Sızıntısı
  [KRİTİK]   Hardcoded şifre tespit edildi
             src/slices/token.slice.ts:74: password: 'sifre123'
             → Öneri: Şifreyi .env dosyasına taşıyın.

=================================================
   ÖZET
=================================================
  GEÇTİ    : 24
  UYARI    : 3
  BAŞARISIZ: 2

Ne anlama geliyor?

| Etiket | Anlamı | Ne yapmalısın? | |--------|--------|----------------| | [GEÇTİ] | Bu kontrol tamam, sorun yok | Bir şey yapma | | [UYARI] | Sorun olabilir, dikkat et | İnce, gerekiyorsa düzelt | | [KRİTİK] | Güvenlik açığı var | Mutlaka düzelt, altındaki öneriyi uygula |

Her [KRİTİK] satırının hemen altında → Öneri: yazar — tam olarak ne yapman gerektiğini söyler.


Otomatik Düzeltme 🔧

Tarama bittiğinde araç sana sorar:

Otomatik düzeltmeleri uygulayayım mı? [y/N]:

y dersen şu güvenli düzeltmeleri otomatik yapar:

| Düzeltme | Ne Yapar? | |----------|-----------| | .env.gitignore | Yeni eklenir, ayrıca git cache'inden çıkarılır | | AndroidManifest | allowBackup="false" ve networkSecurityConfig ekler | | network_security_config.xml | Dosyayı sıfırdan oluşturur (cleartext kapalı) | | build.gradle | ProGuard release build için açar | | Podfile | Hermes'i iOS için açar | | .env.example | .env'deki anahtarları boş değerlerle kopyalar |

Otomatik yapılmayan riskli değişiklikler (elle yap):

  • Kod içindeki hardcoded email/şifre kaldırma
  • Android izin kaldırma
  • Bağımlılık güncelleme

CI/CD'de bu prompt atlanır (CI=true otomatik tespit edilir). Manuel atlamak için: RN_AUDIT_NO_FIX=1


Ne Kontrol Eder?

1. AndroidManifest Güvenlik Kontrolleri

Uygulamanın temel Android güvenlik ayarlarını kontrol eder.

  • HTTP trafiğine izin veriliyor mu?
  • Yedekleme (backup) açık mı?
  • Debug modu production'da aktif mi?

2. iOS Info.plist & ATS Kontrolleri

iOS tarafında güvenlik ayarlarını ve izin açıklamalarını kontrol eder.

  • App Transport Security (ATS) kapatılmış mı? (NSAllowsArbitraryLoads)
  • İzin açıklamaları (NSCameraUsageDescription vb.) eksik veya boş mu?
  • iTunes File Sharing açık mı? (UIFileSharingEnabled)
  • WebView'da file URL erişimi açık mı?
  • Hassas veri AsyncStorage yerine Keychain'de mi saklanıyor?
  • Hermes iOS'ta etkin mi?
  • Release build'de DEBUG makrosu kalmış mı?

3. Hardcoded Credential & Email Sızıntısı

Kaynak koduna gömülmüş şifre, email, API anahtarı arar.

  • Şifre doğrudan koda yazılmış mı?
  • Çalışan email adresleri bundle'a sızmış mı?
  • .env dosyası yanlışlıkla git'e atılmış mı?

4. Ağ Güvenliği Yapılandırması

Uygulamanın sunucuyla güvenli konuşup konuşmadığını kontrol eder.

  • Certificate pinning var mı?
  • HTTP (şifresiz) bağlantıya izin veriliyor mu?
  • Ağ güvenlik config dosyası doğru yapılandırılmış mı?

5. İzin (Permission) Analizi

Uygulamanın istediği Android izinlerini inceler.

  • Gereksiz izin var mı? (GPS, depolama, mikrofon vb.)
  • Kullanıcıya izin neden istendiği açıklanıyor mu?

6. Obfuscation & Build Güvenliği

Uygulamanın tersine mühendisliğe karşı korunup korunmadığını kontrol eder.

  • ProGuard/R8 açık mı? (kod karmaşıklaştırma)
  • Source map production APK'ya gömülmüş mü?
  • Root/jailbreak tespiti var mı?
  • APK imza doğrulaması var mı?

7. Bağımlılık Güvenliği

Kullandığın kütüphanelerde bilinen açık olup olmadığını kontrol eder.

  • npm audit çalıştırır, kritik açıkları raporlar
  • Riskli paket kullanımı var mı?
  • Versiyon kilidi (lock dosyası) var mı?

CI/CD'ye Eklemek (GitHub Actions)

Her PR açıldığında otomatik çalışmasını istersen, hazır GitHub Action'ı kullan:

# .github/workflows/security-audit.yml
name: Security Audit
on: [push, pull_request]

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: frk101/rn-security-audit@v1
        with:
          project-dir: '.'         # opsiyonel, varsayılan repo kökü
          fail-on: 'critical'      # critical | warning | none

Inputs

| Input | Varsayılan | Açıklama | |-------|-----------|----------| | project-dir | . | Taranacak proje dizini | | fail-on | critical | critical: sadece kritik varsa build düşer, warning: uyarı bile olsa düşer, none: hiç düşmez |

Outputs

| Output | Açıklama | |--------|----------| | pass-count | Geçen kontrol sayısı | | warn-count | Uyarı sayısı | | fail-count | Kritik bulgu sayısı |

Her run sonunda GitHub Actions sekmesindeki Summary'de özet tablo otomatik gösterilir.


Sık Sorulan Sorular

Proje dizinini nasıl bulurum? Terminal'de projenin içindeyken pwd yaz, dizini kopyala.

"Permission denied" hatası alıyorum.

chmod +x ~/Documents/rn-security-audit/scripts/audit.sh
chmod +x ~/Documents/rn-security-audit/scripts/checks/*.sh

"No such file or directory" hatası alıyorum. Proje dizinini yanlış yazmış olabilirsin. Dizinin doğru olduğunu kontrol et:

ls /PROJE/DIZINI/package.json

Bu komut dosyayı listeliyorsa dizin doğrudur.

Tek bir kontrolü çalıştırabilir miyim? Evet:

bash ~/Documents/rn-security-audit/scripts/checks/credentials.sh /PROJE/DIZINI