یک جعبه ابزار مرورگری برای کارهای کوچکی که کار واقعی را قطع میکنند
بیشتر مشکلات کدنویسی بزرگ و جالب هستند. آنهایی که واقعاً شما را کند میکنند نیستند. یک پاسخ API minify شده جلوی شما دارید، یک JWT که نمیتوانید بخوانید، یک URL که رشته query آن را خراب میکند، و یک regex که تقریباً کار میکند. هیچکدام از اینها لایق یک dependency، یک نصب CLI یا یک تب پر از تبلیغ نیستند. لایق سی ثانیه و یک جعبه متن تمیز هستند.
این تمام ایده پشت این مجموعه است: یک صفحه از ابزارهای توسعهدهنده رایگان که فوری بارگذاری میشوند، کاملاً در مرورگر شما اجرا میشوند و هرگز از شما نمیخواهند ثبتنام کنید. قالببندی JSON، Base64، کدگذاری URL، رمزگشایی JWT، تبدیل رنگ، آزمایش regex، محاسبه timestamp و یک مرجع HTTP status همگی در یک جا قرار دارند. دیگر دادههایتان را در هر چیزی که Google ابتدا نشان میدهد نچسبانید، و دیگر نگران نباشید که آن سایت تصادفی آن را لاگ میکند یا نه.
هر ابزار واقعاً چه میکند
قالبساز JSON یک دیوار از JSON escaped و تکخطه را به چیزی تبدیل میکند که یک انسان بتواند اسکن کند. فرض کنید یک webhook فعال میشود و لاگهای شما body خام را به صورت یک رشته بزرگ ثبت میکنند. بچسبانید، دو یا چهار فاصله برای تورفتگی انتخاب کنید، و یک درخت خوانا با خطای syntax مشخص شده دریافت میکنید اگر خطایی وجود داشته باشد. همزمان با قالببندی اعتبارسنجی میکند، بنابراین یک کامای اضافه یا یک کلید بدون علامت نقلقول شناسایی میشود به جای اینکه سه لایه عمیقتر در اپلیکیشن شما شکست بیصدا داشته باشد.
رمزگذاری/رمزگشایی Base64 ابزار پرکاری است که بدون فکر کردن دائماً به آن دست میزنید. Data URI، هدرهای Basic Auth، blobهای باینری در فایلهای تنظیمات، بخشهای یک توکن — همه Base64 هستند. یک مقدار هدر را رمزگشایی کنید تا تأیید کنید credentialها به روش مورد انتظار ارسال میشوند، یا یک تصویر کوچک را برای inline کردن آن رمزگذاری کنید. UTF-8 را به درستی مدیریت میکند که وقتی ورودی شما ASCII خالص نیست اهمیت دارد.
ابزار کدگذاری/رمزگشایی URL باگ کلاسیکی را برطرف میکند که یک پارامتر query حاوی یک فاصله، یک ampersand یا یک علامت plus است و درخواست شما را بیصدا خراب میکند. اگر دستی یک لینک میسازید و مقدار name=John & Co است، باید آن ampersand به %26 escape شود وگرنه سرور آن را به عنوان جداکننده پارامتر میخواند. بچسبانید، کدگذاری کنید، کپی کنید. رمزگشایی به طرف دیگر کار میکند وقتی به یک URL لاگ شده پر از کدهای درصد خیره شدهاید و سعی میکنید بفهمید چه چیزی واقعاً درخواست شده.

ابزار توکن، و یک نکته مهم
رمزگشای JWT یک توکن را به سه بخش جدا شده با نقطه تقسیم میکند و هدر و payload را به صورت JSON ساده نشان میدهد. وقتی احراز هویت را debug میکنید، این طلاست: بررسی کنید کدام الگوریتم توکن را امضا کرده، sub را بخوانید، تأیید کنید ادعای exp هنوز منقضی نشده، و ببینید دقیقاً چه scopeها یا نقشهایی gateway شما به client میدهد.
این بخشی است که مردم فراموش میکنند. رمزگشایی یک JWT تأیید آن نیست. payload فقط Base64url است — هر کسی که توکن را دارد میتواند هر ادعایی در آن را بخواند، و این ابزار دقیقاً همین کار را میکند و نه چیز دیگری. امضا را بررسی نمیکند، بنابراین یک توکن رمزگشایی شده به شما میگوید یک توکن چه ادعایی میکند، نه اینکه آیا اصیل است. هرگز برای یک تصمیم مجوزدهی به ادعاهای یک رمزگشا اعتماد نکنید؛ این کار سرور شماست با کلید امضا. از رمزگشا برای درک و debug استفاده کنید، هرگز برای اعتبارسنجی.
آزمایشکننده regex حلقه را روی ناامیدکنندهترین ابزار میبندد. الگوی خود را بنویسید، متن نمونه بریزید، و تطابقها را ببینید که همزمان با تایپ برجسته میشوند. گروههای capture لیست شدهاند تا بتوانید تأیید کنید که گروه دو واقعاً سال را میگیرد نه کل تاریخ را. از چرخه ویرایش-ذخیره-اجرای مجدد آزمایش یک الگو در codebase واقعی خود بهتر است، و راه سریعی برای یادگیری اینکه چرا یک quantifier حریص بیشتر از آنچه قصد داشتید میبلعد.
برای تکمیل: مبدل HEX↔RGB یک #1a2b3c را به rgb(26, 43, 60) و بالعکس تبدیل میکند برای وقتی که توکنهای طراحی و CSS شما اختلاف دارند. مبدل Unix timestamp یک 1718900000 را به یک تاریخ و زمان واقعی تبدیل میکند که هر بار که پایگاه داده ثانیههای epoch ذخیره میکند و چشمانتان نمیتوانند آنها را تفسیر کنند به آن نیاز خواهید داشت. و مرجع کد وضعیت HTTP شما را از حدس زدن نجات میدهد که آیا ۴۲۲ یا ۴۰۹ پاسخ درست است وقتی یک فراخوانی API اشتباه میرود.

پردازش محلی، تا بتوانید دادههای حساس را بچسبانید
این بخشی است که برای هر کسی که به دادههای production دست میزند بیشترین اهمیت را دارد. هر ابزار اینجا از سمت client در JavaScript اجرا میشود. ورودی شما هرگز مرورگر را ترک نمیکند — آپلودی نیست، رفتوبرگشتی به سرور نیست، چیزی برای لاگ کردن نیست. به این معناست که میتوانید یک توکن دسترسی واقعی بچسبانید تا ادعاهایش را بررسی کنید، یک هدر Base64 حاوی یک credential را رمزگشایی کنید، یا یک پاسخ API پر از داده مشتری را قالببندی کنید بدون اینکه هرگز از شبکه عبور کند. میخواهید اثباتش کنید؟ dev tools را باز کنید، تب network را نگاه کنید و بچسبانید. هیچ چیزی ارسال نخواهید دید. برای payloadهای حساس، یک ابزار فقطمحلی تنها گزینه مسئولانه است.
سوالات متداول
آیا این ابزارهای توسعهدهنده واقعاً بدون ثبتنام رایگان هستند؟
بله. هر ابزار برای استفاده رایگان است، نیاز به حساب کاربری ندارد و محدودیت استفاده ندارد. صفحه را باز کنید و شروع به کار کنید.
آیا دادهام وقتی از این ابزارها استفاده میکنم به سرور ارسال میشود؟
نه. همه چیز از سمت client در مرورگر شما اجرا میشود. ورودی شما هرگز آپلود نمیشود، بنابراین میتوانید با خیال راحت توکنها، credentialها و پاسخهای API خصوصی را بچسبانید.
آیا رمزگشای JWT امضای توکن را تأیید میکند؟
نه. فقط هدر و payload را رمزگشایی میکند تا بتوانید ادعاها را بخوانید. رمزگشایی تأیید نیست. تأیید امضا به کلید امضا نیاز دارد و به سرور شما تعلق دارد.
تفاوت بین رمزگذاری Base64 و رمزنگاری چیست؟
Base64 رمزگذاری است، نه رمزنگاری. توسط هر کسی کاملاً قابل بازگشت است و امنیتی ارائه نمیدهد. وجودش برای نمایش دادههای باینری به صورت متن است، نه پنهان کردن آن.
آزمایشکننده regex از کدام طعم regex پشتیبانی میکند؟
از موتور عبارت منظم JavaScript استفاده میکند که در مرورگر شما اجرا میشود، با برجستهسازی تطابق زنده و خروجی گروه capture همزمان با تایپ.
آیا میتوانم JSON نامعتبر را قالببندی کنم؟
قالبساز تلاش میکند و اگر JSON شکسته باشد به محل خطا اشاره میکند و میگوید چه اشکالی دارد تا بتوانید آن را برطرف و دوباره قالببندی کنید.
