rnsec: اسکنر امنیتی ریاکت نیتیو با یه دستور
خلاصهٔ کاملتر
rnsec یه اسکنر امنیتی متنباز برای پروژههای React Native و Expo هست که ادعای اصلیاش سادگیه: نصبش میکنی، rnsec scan رو میزنی و تمومه. هیچ فایل تنظیماتی لازم نیست و خروجی بهشکل یه گزارش HTML تعاملی بهعلاوهٔ یه فایل JSON ماشینخوان تولید میشه.
پشت این سادگی ۶۳ قانون امنیتی تو ۱۳ دسته نشسته: ذخیرهسازی و رمزنگاری داده، شبکه و اعتبارسنجی SSL و امنیت WebView، احراز هویت و JWT و بایومتریک، لاگ کردن دادهٔ حساس، امنیت پل نیتیو و دیپلینک، و ایرادهای مخصوص منیفست اندروید و Info.plist در iOS. بخش تشخیص رمز هم بیش از ۲۷ الگوی مختلف رو میشناسه، از کلیدهای AWS و Firebase و Stripe گرفته تا توکنهای شخصی گیتهاب و کلیدهای خصوصی RSA و SSH.
نمونهٔ ایرادهایی که دنبالشونه چیزهای آشناییه؛ همون اشتباهات کوچیکی که تو عجلهٔ توسعه راحت جا خوش میکنن:
const API_KEY = 'your_secret_api_key_here';
await AsyncStorage.setItem('user_token', token);
fetch('http://api.example.com/data');
const hash = MD5(password);بخش قابل توجهش برای تیمها یکپارچگی با CI و پولریکوئسته. با گزینهٔ --changed-files میشه فقط فایلهایی رو اسکن کرد که نسبت به یه برنچ یا کامیت خاص عوض شدن، که هم سریعتره و هم تمرکز رو میذاره روی ایرادهای تازهواردشده. گزارش مارکداون هم قابلیت پست شدن بهشکل کامنت پولریکوئست رو داره و بهجای ساختن کامنت تکراری، همون کامنت قبلی رو بهروز میکنه. کنارش یه امتیاز امنیتی صفر تا صد، تراکم آسیبپذیری به ازای هر هزار خط کد و روند بهبود یا افت نسبت به اسکن قبلی هم گزارش میشه.
برای خط لولهٔ CI، کد خروج ۱ یعنی ایراد با شدت بالا پیدا شده و ۰ یعنی چیزی نبوده، پس راحت میشه بیلد رو مشروط کرد. اگه هم قانونی برای پروژهٔ تو معنی نداشت، با فایل .rnsec.json میشه قانونها رو تو ignoredRules نادیده گرفت یا مسیرهایی رو کنار گذاشت. پروژه با مجوز MIT منتشر شده و نمونهٔ ورکفلو برای گیتهاب اکشنز، گیتلب، بیتباکت و ازور دواپس هم داره.
نکات کلیدی:
- اسکن امنیتی پروژههای React Native و Expo با یه دستور و بدون تنظیمات
- ۶۳ قانون تو ۱۳ دسته: ذخیرهسازی، شبکه، احراز هویت، رمزنگاری، لاگ، اندروید و iOS
- تشخیص بیش از ۲۷ نوع کلید و توکن هاردکدشده
- گزارش HTML تعاملی، JSON ماشینخوان و مارکداون برای کامنت پولریکوئست
- --changed-files برای اسکن سریع فقط روی تغییرات یه پولریکوئست
- کد خروج ۱ برای ایراد با شدت بالا؛ مناسب مشروط کردن بیلد تو CI
- امکان نادیده گرفتن قانونها و مسیرها با فایل .rnsec.json




