Uyumluluk: Pactmark 0.2.x. unsafe_local_development bir yetenek etiketidir, sandbox garantisi değil — bkz. Sandbox sınırı.

Çalıştırın

Neyi gösterir

Enerjisinin çoğunu işlerin ters gitmesine harcayan örnek budur; bu da onu depodaki en öğretici örnek yapar.

İzin listeli kökler

Ajan yalnızca beyan edilmiş kökler içinde okuyup yazabilir, başka hiçbir yerde.

Yol traversal reddi

../, kodlanmış varyantlar ve tekrarlı çözme — karşılaştırmadan önce hepsi normalize edilir.

Symlink reddi

Fiziksel symlink çözümlemesi; kökün dışına çıkan bir bağlantı izlenmek yerine reddedilir.

Taslak artifact'lar

Ara çıktı, sonuç olmadan önce içerik-adresli bir taslak olur.

Komut, çıktı ve süre sınırları

Aracın iyi davranışıyla değil, yürütücü tarafından sınırlanır ve zorlanır.

İptal

AbortSignal araca ulaşır ve koşu temizce cancelled durumuna gelir.

Redaksiyon

Çalışma alanı gövdeleri olaylara, telemetriye veya kanıta sızmaz.

Yol normalizasyonu neden kendi başına bir disiplin

Herhangi bir karşılaştırma yapılmadan önce bunların hepsi tek bir değere çözülmelidir:
Depo bunu özellik tabanlı kanonikleştirme testleri ile traversal ve symlink sondalarıyla kapsar — tehdit modeli satırı TM-09. Kaçırılan tek bir çözme geçişi bir çalışma alanı kaçışıdır.
Çalışma alanı yollarını gösteren veya kabul eden bir arayüz kurarsanız, politikanın kullandığı fonksiyonla kanonikleştirin. İki farklı normalizasyon, “sorunsuz görünen” bir yolun başka bir yere çözülmesinin nedenidir.

Konteyner sözleşme fixture’ı

Örnek, minimum bir adaptör sınırını tarif eden bir konteyner sözleşme fixture’ı içerir: root olmayan kullanıcı, ağ yok, salt okunur kök, tmpfs çalışma alanı, bağlama veya Docker soketi yok, düşürülmüş yetenekler, no-new-privileges ve süreç, bellek, CPU, süre ve çıktı sınırları.
Bir sınırı tarif eder. Rastgele kod izolasyonu veya üretim sertleştirmesi iddia etmez. Üretimde rastgele kod yürütme, ayrıca seçilmiş ve bağımsız değerlendirilmiş bir izolasyon sistemi gerektirir.

Ret yolları testlerin kendisidir

Sonuncusu bir redaksiyon kanaryasıdır. Çalışma alanı gövdeleri yalnızca özet ve meta veri taşıması gereken bir yüzeyde göründüğünde derlemeyi başarısız kılar.

Neyi kanıtlamaz

unsafe_local_development yetenek etiketi tam olarak söylediği şeydir. Bu örnek yol ve kaynak sınırlarının doğru davrandığını gösterir. O sınırların içinde çalışan kodun izolasyonunu göstermez ve çekirdek, konteyner çalışma zamanı, yan kanal veya çok kiracılı saldırılar hakkında kanıt değildir.

Uyarlamak

1

Sanal dosya sistemini gerçek biriyle değiştirin

Aynı ret testlerini koruyun. Herhangi biri başarısız olmayı bırakırsa bir kontrolü kaybetmişsinizdir.
2

Köklerinizi dar beyan edin

Amaç başına bir kök, alt dizin kurallarıyla tek bir kökten iyidir.
3

Güvenilmez içerikten önce gerçek bir SandboxAdapter ekleyin

Dosyalar kullanıcılardan veya bir modelden geldiyse fixture yeterli değildir.
4

Redaksiyon kanaryasını koruyun

Paketteki en ucuz test odur ve en utandırıcı hatayı yakalar.

Sandbox sınırı

Konteyner fixture’ının neden fixture olduğu.

Araç tanımlama

Kendi araçlarınız için kapsam, sınır ve egress beyanı.