yof attack, çalışan kendi uygulamanı bir saldırganın yapacağı gibi test eder; bunun için açtığın test hesaplarını kullanır. Kendi makinende ya da CI'ında çalışır.
Kapsamı sen yazarsınDeponda bir ayar dosyası; içinde bir onay cümlesi ve kendi test hesapların.Kendi makinende ya da CI'ında çalışırBir önizleme sürümüne karşı. Ayar dosyan açmadıkça yayındaki siten kapsam dışında kalır.Bir saldırgan gibi test ederGiriş yapmadan, bozuk bir token'la, başka bir hesabın kaydıyla, sıradan bir üye olarak yönetici sayfalarıyla.Yalnızca iki kez olan sayılırHer bulgu iki kez doğrulanır ve bir regresyon testine dönüşür.Arkasını toplar ve raporlarKendi test kayıtlarını siler ve yof'a yalnızca maskelenmiş sonuçları gönderir.
.yof/attack.jsonjson
{"app": "shop.example.com","consent": "I own shop.example.com and allow yof attack to test it…","accounts": { "a": { … }, "b": { … } },"production": { "enabled": false }}
$ npx @yof/cli attack http://localhost:3000
auth · signed-in pages with no sign-in and a broken token✓
tenant · account B reads account A's record1 finding
rbac · admin pages as a normal member✓
surface · redirects, headers, the sign-in cookie✓
tenant: seen twice · a regression test was written ✓
deleted its own test records ✓ · masked results sent to yof ✓
.yof/attack.jsonjson
{"app": "shop.example.com","consent": "I own shop.example.com and allow yof attack to test it…","accounts": { "a": { … }, "b": { … } },"production": { "enabled": false }}
$ npx @yof/cli attack http://localhost:3000
auth · signed-in pages with no sign-in and a broken token✓
tenant · account B reads account A's record1 finding
rbac · admin pages as a normal member✓
surface · redirects, headers, the sign-in cookie✓
tenant: seen twice · a regression test was written ✓
deleted its own test records ✓ · masked results sent to yof ✓
.yof/attack.jsonjson
{"app": "shop.example.com","consent": "I own shop.example.com and allow yof attack to test it…","accounts": { "a": { … }, "b": { … } },"production": { "enabled": false }}
$ npx @yof/cli attack http://localhost:3000
auth · signed-in pages with no sign-in and a broken token✓
tenant · account B reads account A's record1 finding
rbac · admin pages as a normal member✓
surface · redirects, headers, the sign-in cookie✓
tenant: seen twice · a regression test was written ✓
deleted its own test records ✓ · masked results sent to yof ✓
.yof/attack.jsonjson
{"app": "shop.example.com","consent": "I own shop.example.com and allow yof attack to test it…","accounts": { "a": { … }, "b": { … } },"production": { "enabled": false }}
$ npx @yof/cli attack http://localhost:3000
auth · signed-in pages with no sign-in and a broken token✓
tenant · account B reads account A's record1 finding
rbac · admin pages as a normal member✓
surface · redirects, headers, the sign-in cookie✓
tenant: seen twice · a regression test was written ✓
deleted its own test records ✓ · masked results sent to yof ✓
.yof/attack.jsonjson
{"app": "shop.example.com","consent": "I own shop.example.com and allow yof attack to test it…","accounts": { "a": { … }, "b": { … } },"production": { "enabled": false }}
$ npx @yof/cli attack http://localhost:3000
auth · signed-in pages with no sign-in and a broken token✓
tenant · account B reads account A's record1 finding
rbac · admin pages as a normal member✓
surface · redirects, headers, the sign-in cookie✓
tenant: seen twice · a regression test was written ✓
deleted its own test records ✓ · masked results sent to yof ✓
Neyi test eder
authGiriş gerektiren her sayfayı girişsiz ve bozuk bir token ile açar.
tenantA hesabı bir test kaydı oluşturur, sonra B hesabı onu okumayı, bir listede bulmayı ve değiştirmeyi dener.
rbacHer yönetici sayfasını sıradan bir üye olarak açar.
aiAsistanınız: gizli talimatlarını okumayı, ona komut sızdırmayı ve başka bir hesabın verilerine ulaşmayı dener.
surfaceAçık yönlendirmeler, güvenlik başlıkları ve giriş çerezi.
Asla yapmadıkları
Yapılandırmanız bu uygulama için açmadıkça canlı sitenizi asla test etmez.
Yalnızca okur, giriş yapar ve kendi test kayıtlarını oluşturur. Yalnızca kendi oluşturduğunu değiştirir ya da siler.
Sınırında durur: daha az ya da daha fazla belirlemedikçe 300 istek ve 110 saniye.
Sonunda test kayıtlarını siler, siz durdursanız bile.
Test hesaplarınız CI gizli değerlerinizde kalır. yof asla bir parola ya da token saklamaz.
shell
$ npx @yof/cli attack http://localhost:3000
.yof/attack.jsonjson
1{2"app": "shop.example.com",3"consent": "I own shop.example.com and allow yof attack to test it and its preview builds with my own test accounts.",4"accounts": {5"a": { "header": "Authorization", "env": "YOF_ATTACK_A" },6"b": { "header": "Authorization", "env": "YOF_ATTACK_B" },7"admin": { "header": "Authorization", "env": "YOF_ATTACK_ADMIN" }8 },
Saldırı testleri
Kendiniz ücretsiz çalıştırın ya da bir raporun parçası olarak yof sizin için çalıştırsın.
Kendiniz çalıştırın
Ücretsiz
Açık kaynaklı komut satırı aracıyla, kendi makinenizde ya da CI'ınızda, oluşturduğunuz test hesaplarıyla.
yof sizin için çalıştırır
Dahil
“Güvenlik raporu: Tam” ($499) ve “Kanıt paketi” ($1.490) içinde. Onayı uygulamada bir kez verirsiniz. Test hesapları isteğe bağlıdır.
Otomatik test çalışması Geliştiriliyor
$1.990uygulama başınaYakında açılıyor
yof, önce onayladığınız kurallar çerçevesinde tek bir uygulamada tüm saldırı testlerini yürütür.