yof attack · your machine or your CIبيانات تجريبية
أنت تكتب النطاقملف إعدادات في مستودعك، فيه جملة موافقة وحسابات الاختبار الخاصة بك.يعمل على جهازك أو في CI لديكعلى نسخة معاينة. موقعك المنشور يبقى خارج الاختبار ما لم تفعّله إعداداتك.يختبر كما يفعل المهاجممن دون تسجيل الدخول، برمز دخول معطوب، بسجل حساب آخر، وبصفحات الإدارة كعضو عادي.يُحسب فقط ما حدث مرتينتُؤكَّد كل نتيجة مرتين ثم تصير اختبار تراجع.ينظّف ويرفع تقريرهيحذف سجلات الاختبار التي أنشأها ويرسل إلى 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 ✓
.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 ✓
ما الذي يختبره
authيفتح كل صفحة مخصصة للمسجّلين دون تسجيل دخول وبرمز تالف.
tenantينشئ الحساب A سجلًا تجريبيًا، ثم يحاول الحساب B قراءته وإيجاده في قائمة وتغييره.
rbacيفتح كل صفحة إدارة بصفة عضو عادي.
aiمساعدك: يحاول قراءة تعليماته المخفية، وتمرير أوامر إليه، والوصول إلى بيانات حساب آخر.
surfaceإعادات التوجيه المفتوحة، وترويسات الأمان، وملف تعريف ارتباط تسجيل الدخول.
ما الذي لا يفعله أبدًا
لا يختبر موقعك العامل أبدًا إلا إذا فعّل إعدادك ذلك لهذا التطبيق.
يقرأ ويسجّل الدخول وينشئ سجلاته التجريبية فقط. لا يغيّر ولا يحذف إلا ما أنشأه بنفسه.
يتوقف عند حدّه: 300 طلب و110 ثوانٍ، إلا إذا حددت أقل أو أكثر.
يحذف سجلاته التجريبية في النهاية، حتى لو أوقفته.
تبقى حساباتك التجريبية في أسرار CI. لا يحفظ yof أي كلمة مرور أو رمز.
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 },
اختبارات الهجوم
شغّلها بنفسك مجانًا، أو دع yof يشغّلها لك ضمن تقرير.
شغّلها بنفسك
مجانًا
بأداة سطر الأوامر مفتوحة المصدر، على جهازك أو في CI، بحسابات تجريبية تنشئها أنت.
yof يشغّلها لك
مشمول
ضمن «تقرير الأمان: الكامل» ($499) و«حزمة الأدلة» ($1,490). تعطي موافقتك مرة واحدة في التطبيق. الحسابات التجريبية اختيارية.
الاختبار المؤتمت قيد التطوير
$1,990لكل تطبيقيُفتح قريبًا
يُجري yof كل اختبارات الهجوم على تطبيق واحد، وفق قواعد تؤكدها أولًا.