ארגז כלים בדפדפן למשימות הקטנות שמפריעות לעבודה האמיתית
רוב בעיות התכנות גדולות ומעניינות. אלה שבאמת מאטות אתכם לא כאלה. יש לכם תגובת API מכווצת מולכם, JWT שאי אפשר לקרוא, כתובת URL שמקלקלת את מחרוזת השאילתה שלה, וביטוי רגולרי שכמעט עובד. אף אחד מאלה לא מצדיק תלות, התקנת CLI, או כרטיסייה מלאה בפרסומות. הם מצדיקים שלושים שניות ותיבת טקסט נקייה.
זה כל הרעיון מאחורי האוסף הזה: דף אחד של כלי עזר חינמיים למפתחים שנטענים מיידית, פועלים לגמרי בדפדפן שלכם, ולעולם לא מבקשים ממכם להירשם. עיצוב JSON, Base64, קידוד URL, פענוח JWT, המרת צבעים, בדיקת ביטויים רגולריים, חישובי חותמת זמן, ועיון בקודי מצב HTTP, כולם חיים במקום אחד. אתם מפסיקים להדביק את הנתונים שלכם בכל מה שגוגל מציף ראשון, ומפסיקים לתהות אם האתר האקראי הזה רושם אותם.
מה כל כלי באמת עושה
מעצב ה-JSON לוקח קיר של JSON חד-שורתי עם תווי בריחה והופך אותו למשהו שבן אדם יכול לסרוק. נניח שווב-הוק יורה והלוגים שלכם תופסים את הגוף הגולמי כמחרוזת ענקית אחת. הדביקו אותו, בחרו הזחה של שני או ארבעה רווחים, ותקבלו עץ קריא עם שגיאת התחביר מסומנת במדויק אם יש כזו. הוא מוודא תקינות תוך כדי עיצוב, כך שפסיק תועה בסוף או מפתח ללא מרכאות נתפסים במקום להיכשל בשקט שלוש שכבות עמוק בתוך האפליקציה שלכם.
קידוד/פענוח Base64 הוא סוס העבודה שאליו אתם פונים כל הזמן בלי לחשוב על זה. Data URIs, כותרות Basic Auth, בלובים בינאריים דחוסים בקבצי תצורה, מקטעי אסימון, כולם Base64. פענחו ערך כותרת כדי לוודא שאישורים נשלחים כפי שציפיתם, או קדדו תמונה קטנה כדי לשלב אותה ישירות. הוא מטפל ב-UTF-8 בצורה נקייה, מה שחשוב ברגע שהקלט שלכם אינו ASCII רגיל.
כלי קידוד/פענוח ה-URL מתקן את הבאג הקלאסי שבו פרמטר שאילתה מכיל רווח, אמפרסנד, או סימן פלוס ובשקט שובר את הבקשה שלכם. אם אתם בונים קישור ידנית והערך הוא name=John & Co, אתם צריכים שהאמפרסנד יבוא לביטוי בבריחה כ-%26 אחרת השרת קורא אותו כמפריד פרמטרים. הדביקו, קדדו, העתיקו. פענוח עובד בכיוון ההפוך כשאתם מסתכלים על URL רשום מלא בקודי אחוז ומנסים להבין מה באמת התבקש.

כלי האסימון, ואזהרה חשובה
מפענח ה-JWT מפצל אסימון לשלושת חלקיו המופרדים בנקודה ומציג את הכותרת והמטען כ-JSON רגיל. כשאתם מאתרים תקלות באימות, זה זהב טהור: בדקו איזה אלגוריתם חתם על האסימון, קראו את ה-sub, ודאו שתביעת ה-exp עוד לא פגה, וראו בדיוק אילו הרשאות או תפקידים השער שלכם מעניק ללקוח.
הנה החלק שאנשים שוכחים. פענוח JWT אינו אימות שלו. המטען הוא פשוט Base64url — כל מי שמחזיק באסימון יכול לקרוא כל תביעה בו, והכלי הזה עושה בדיוק את זה ולא יותר. הוא לא בודק את החתימה, אז אסימון מפוענח מספר לכם מה אסימון אומר, לא אם הוא אמיתי. לעולם אל תסמכו על תביעות ממפענח להחלטת הרשאה; זה תפקיד השרת שלכם, עם מפתח החתימה. השתמשו במפענח כדי להבין ולאתר תקלות, לעולם לא כדי לאמת.
בודק הביטויים הרגולריים סוגר את המעגל על כלי העזר המתסכל ביותר מכולם. כתבו את התבנית שלכם, הכניסו טקסט לדוגמה, וצפו בהתאמות מודגשות חי בזמן ההקלדה. קבוצות לכידה מוצגות ברשימה, כך שתוכלו לוודא שקבוצה שתיים באמת תופסת את השנה ולא את התאריך כולו. זה עדיף על מחזור עריכה-שמירה-הרצה מחדש של בדיקת תבנית בתוך בסיס הקוד האמיתי שלכם, וזו דרך מהירה ללמוד למה כמת חמדן בולע יותר ממה שהתכוונתם.
לסיום: ממיר HEX↔RGB הופך #1a2b3c ל-rgb(26, 43, 60) ובחזרה למקרים שבהם אסימוני העיצוב וה-CSS שלכם לא מסכימים. ממיר חותמת הזמן של יוניקס הופך את 1718900000 לתאריך ושעה אמיתיים, מה שתרצו בכל פעם שבסיס נתונים שומר שניות אפוק והעיניים שלכם לא יכולות לפענח אותן. ועיון קודי מצב ה-HTTP חוסך לכם ניחוש האם 422 או 409 היא התשובה הנכונה כשקריאת API משתבשת.

עיבוד מקומי, כדי שתוכלו להדביק את החומר הרגיש
זה החלק החשוב ביותר עבור מי שנוגע בנתוני ייצור. כל כלי כאן פועל בצד הלקוח ב-JavaScript. הקלט שלכם לעולם לא יוצא מהדפדפן — אין העלאה, אין מסע הלוך-חזור לשרת, שום דבר לרשום ביומן. זה אומר שאפשר להדביק אסימון גישה אמיתי כדי לבדוק את התביעות שלו, לפענח כותרת Base64 שמכילה אישור, או לעצב תגובת API מלאה בנתוני לקוחות בלי שהיא תחצה אף פעם את הרשת. רוצים הוכחה? פתחו את כלי המפתחים שלכם, צפו בכרטיסיית הרשת, והדביקו. לא תראו שום דבר יוצא. עבור מטענים רגישים, כלי מקומי בלבד הוא לא בונוס נחמד; זו האפשרות האחראית היחידה.
שאלות נפוצות
האם כלי המפתחים האלה באמת חינמיים ללא הרשמה?
כן. כל כלי עזר חינמי לשימוש, לא דורש חשבון, ואין לו הגבלות שימוש. פתחו את הדף והתחילו לעבוד.
האם הנתונים שלי נשלחים לשרת כשאני משתמש בכלים האלה?
לא. הכל פועל בצד הלקוח בדפדפן שלכם. הקלט שלכם לעולם לא מועלה, כך שאפשר להדביק בבטחה אסימונים, אישורים, ותגובות API פרטיות.
האם מפענח ה-JWT מאמת את חתימת האסימון?
לא. הוא רק מפענח את הכותרת והמטען כדי שתוכלו לקרוא את התביעות. פענוח אינו אימות. אימות חתימה דורש את מפתח החתימה ושייך לשרת שלכם.
מה ההבדל בין קידוד Base64 להצפנה?
Base64 הוא קידוד, לא הצפנה. הוא הפיך במלואו על ידי כל אחד ולא מציע שום אבטחה. הוא קיים כדי לייצג נתונים בינאריים כטקסט, לא כדי להסתיר אותם.
איזה סוג ביטוי רגולרי תומך בו בודק הביטויים הרגולריים?
הוא משתמש במנוע הביטויים הרגולריים של JavaScript שפועל בדפדפן שלכם, עם הדגשת התאמות חיה ופלט קבוצות לכידה תוך כדי הקלדה.
האם אפשר לעצב JSON לא תקין?
המעצב ינסה, ואם ה-JSON שבור הוא יצביע על מיקום השגיאה ויאמר לכם מה לא בסדר, כך שתוכלו לתקן ולעצב מחדש.
