Özellikler
RoyalCore-JS; XSS, RCE, SSRF ve dependency kaynaklı riskleri tespit etmeyi amaçlayan statik analiz yaklaşımıdır. Ayırt edici yönü, tek bir “regex” kalıbına indirgenemeyen; bağlam duyarlı kirli veri (taint) akış takibi ve bağımlılık/ kütüphane denetimi içeren bütüncül bir mimari sunmasıdır.
1. Tek regex yaklaşımıyla sınırlı değil
İddia edildiği gibi “tek regex ile tarama” yerine, kaynak kodun anlamsal iskeletini (AST) izleyerek kullanıcı girdi/nesne alanlarını risk bağlamlarına kadar sürer. Bu sayede, yalnızca yüzeysel örüntü eşleştirmeye değil; değişkenlerin akışı, kapsam (scope) ve işlevsel bağlama dayalı bulgular üretmeye odaklanır.
Analiz; belirsizliği (unknown) ayrı bir sınıf olarak ele alır; döngüsel ziyaretleri sınırlar; aynı ara durumu tekrar tekrar işlemekten kaçınır. Böylece hem aşırı gürültü hem de analiz sırasında kontrol kaybı gibi riskler azaltılır.
2. Kirli veri (tainted) akışı takibi
“Kirli veri” burada, istemci girdisi ya da güvenilmeyen kaynaklardan gelen değerlerin; uygulama içinde nesne alanlarına, özelliklere ve fonksiyon çağrılarına taşınmasını ifade eder. RoyalCore-JS, veri akışını izlerken kapsam duyarlılığına (closure/callback içinde taint’in korunması gibi) dikkat eder.
Ek olarak, dinamik anahtarlarla (ör. obj[userInput]) yapılan erişimleri “konservatif” varsayımla güvenlik açısından değerlendirebilir.
Bu yaklaşım, kesin olarak kanıtlanamayan akışlarda dahi riski göz ardı etmemeyi hedefler.
Sonuçlar; akış kanıtı mantığıyla üretilir: yalnızca “bir yerlerde tainted görüldü” demek yerine, ilgili sink/işlem bağlamına kadar ilerleyen gerekçeler ve kanıt parçaları üzerinden raporlanır.
TR: Analiz yalnızca tek bir dosya içinde kalmaz; modüller/bileşenler arası taint yayılımı da ele alınır. Böylece, bulgular bir “dosya içi eşleşme” değil, dosyalar arası (inter-file) gerekçelendirme ve kanıt bağlantıları üzerinden üretilir.
3. Sink ve sanitizer bağlamına duyarlı değerlendirme
Güvenlik kontrolleri, yalnızca “bir sanitize fonksiyonu var mı?” sorusuna indirgenmez. Analiz; sanitize/iyileştirme adımlarının hangi risk sink’i için geçerli olacağını bağlama göre değerlendirir. Böylece, genel amaçlı temizliklerin her durumda güvenli kabul edilmesi gibi yanlış genellemelerin önüne geçilir.
Bu bağlam duyarlılığı; belirsiz ifade çözümlemelerinde “confidence” mantığıyla desteklenir ve bilinmeyen/çözümsüz durumların raporda ayrıştırılmasına imkân verir.
4. Kütüphane/bağımlılık taraması da yapılır
RoyalCore-JS yalnızca kaynak kodu değil, proje bağımlılık ekosistemini de tarar. Bu kapsamda paket manifestleri ve özellikle lockfile üzerinden transitif bağımlılıklar incelenir; bilinen riskli sürümler için tanımlı güvenlik kara liste/uyuşmazlık kontrolleri çalıştırılır.
Ayrıca npm audit çıktıları; güvenlik açık bulguları şeklinde rapora entegre edilir.
Böylece hem “kod içi sink” hem de “paket ekosistemi” üzerinden risk görünürlüğü sağlanır.
Raporlama tarafında bağımlılık kaynaklı bulgular, kod bulgularından ayrıştırılarak kullanıcıya daha anlamlı bir ayrım sunulur.
5. Rapor üretimi ve veri işleme modeli
Uygulama, tarama sırasında sizin gönderdiğiniz içeriği tekil bir geçici çalışma dizininde işler. Tarama tamamlandığında bu geçici dizin temizlenir. Analiz çıktısı ise istemciye döner ve arayüzde kullanıcının tarayıcısı içinde HTML rapor olarak derlenir.
TR: Container/ortam izolasyonu: Üretim mimarisinde tarama işleri (özellikle repo-tabanlı joblar) worker tarafında izole bir Docker ortamında yürütülür. Her job tamamlandığında worker süreci çıkıp orchestrator container'ı yeniden oluşturabildiği için, önceki container ortamındaki artık durum/dosya kalıntıları imha edilerek temizlenir.
Böylece sunucu tarafında rapor içeriklerinin kalıcı biçimde saklanması yerine, yalnızca isteğe yanıt niteliğinde sonuçların aktarılması hedeflenir.
6. Gizlilik: veriler paylaşılmaz, satılmaz ve model eğitilmez
Güvenlik raporu; tarama isteğini başlatan kullanıcıya geri dönen sonuçlar üzerinden oluşturulur. Bu nedenle rapor içeriği, sizin tarafınızda görüntülenir; sunucu üzerinde kalıcı bir “rapor kopyası” olarak saklanmaz.
Tarama sırasında kaynak kod içeriği yalnızca analiz akışı için geçici olarak işlenir ve tarama bitiminde temizlenir. Bunun dışındaki süreçlerde; kota/doğrulama mantığı için sadece sayısal metrikler (ör. satır sayısı) kullanılabilir; kaynak kodun kendisi üçüncü taraflara aktarılmaz.
RoyalCore-JS, verilerinizi kimseyle paylaşmaz; satmaz; güvenlik raporunun içeriğini üçüncü taraflarla paylaşacak şekilde kalıcı bir veri depolama politikası işlemez. Ayrıca, sizin kaynak kodunuz üzerinden makine öğrenmesi modeli eğitimi yapılmaz; analiz deterministik statik tarama prensiplerine dayanır.
Not: Bu sayfadaki açıklamalar, uygulamanın statik analiz ve geçici işlem/temizleme davranışlarını temel alır. Ayrıntılı güvence metni için `Gizlilik` sayfasını da inceleyebilirsiniz.
Features
RoyalCore-JS is a static-analysis approach intended to detect risks related to XSS, RCE, SSRF, and dependency surfaces. Its distinguishing characteristic is a holistic design that cannot be reduced to a single “regex” pattern: context-aware taint/data-flow tracking and dependency/library auditing.
1. Not limited to a single-regex approach
Instead of relying on a single “regex scan”, the analysis follows the semantic structure of the code (AST) and tracks untrusted inputs and object fields through risk-relevant contexts. This enables findings based on value flow, scope, and functional context.
Uncertainty is treated explicitly, cyclic revisits are constrained, and intermediate states are not processed indefinitely—reducing noise and improving analysis stability.
2. Taint/data-flow tracking
“Tainted data” refers to values originating from user input or other untrusted sources, as they propagate into object fields, properties and function-call sites. Scope sensitivity (e.g., preserving taint through closures/callbacks) is respected.
Access via dynamic keys can be evaluated conservatively to avoid silently ignoring uncertain flows.
Results are evidence-driven: the report connects taint propagation to the corresponding sink/operation context through justifications and evidence fragments.
The analysis is not restricted to a single file. Taint can propagate across modules and files (inter-file data-flow), so findings rely on cross-file reasoning and evidence links.
3. Context-aware evaluation for sinks and sanitizers
Security checks are not reduced to a binary “is there a sanitizer function?” question. The analysis evaluates whether sanitization/mitigation steps apply to a particular risk sink in its context.
Confidence handling for ambiguous expression resolution helps the report separate unknown/unsolved states from resolved ones.
4. Dependency/library auditing
RoyalCore-JS audits dependencies in addition to source code by inspecting manifests and lockfiles to reason about transitive dependencies. Risky versions are surfaced through configured blacklist/mismatch checks and integrated security outputs.
Dependency-driven findings are separated from code findings to provide clearer distinctions.
5. Report generation and processing model
During scanning, the provided content is processed in a dedicated temporary workspace, which is cleaned up after completion. The analysis output is returned to the client, and the UI composes an HTML report in the browser.
Containerized execution and cleanup: in production deployments, repository-based scan jobs run inside isolated Docker worker environments. After each job, workers can exit and the orchestrator can recreate a fresh container, disposing of the previous environment.
This design avoids durable server-side storage of report content and delivers results on demand.
6. Privacy: data is not shared, sold, and models are not trained
The security report is generated from results returned to the user who initiated the scan. For that reason, report content is displayed on the user side and is not kept as a persistent “server copy”.
Source content is processed temporarily for the analysis flow and cleaned up at the end of the run. Outside of that, quota/verification logic may rely on numerical metrics, while the source code itself is not transferred to third parties.
RoyalCore-JS does not share or sell data, and does not perform machine-learning model training using your source code. The analysis relies on deterministic static analysis principles.