← speedor.net

დეველოპერის ხელსაწყოები

უფასო ონლაინ ხელსაწყოები: JSON ფორმატერი, Base64 და URL კოდირება, JWT დეკოდერი, regex ტესტერი, HEX↔RGB, Unix დროის ნიშნული და HTTP სტატუს კოდები.

უმეტესი კოდირების პრობლემა დიდი და საინტერესოა. ის, რაც სინამდვილეში განელებთ, ასეთი არაა. თქვენ წინაშეა მინიმიზირებული API პასუხი, JWT, რომლის წაკითხვაც ვერ ხერხდება, URL, რომელიც თავის query string-ს აფუჭებს, და regex, რომელიც თითქმის მუშაობს. არცერთი ეს არ იმსახურებს დამოკიდებულებას, CLI ინსტალაციას ან რეკლამებით სავსე ტაბს. ისინი იმსახურებენ ოცდაათ წამს და სუფთა ტექსტურ ველს.

ბრაუზერული ხელსაწყოთა კოლექცია პატარა საქმეებისთვის, რომლებიც ნამდვილ სამუშაოს აწყვეტინებენ

უმეტესი კოდირების პრობლემა დიდი და საინტერესოა. ის, რაც სინამდვილეში განელებთ, ასეთი არაა. თქვენ წინაშეა მინიმიზირებული API პასუხი, JWT, რომლის წაკითხვაც ვერ ხერხდება, URL, რომელიც თავის query string-ს აფუჭებს, და regex, რომელიც თითქმის მუშაობს. არცერთი ეს არ იმსახურებს დამოკიდებულებას, CLI ინსტალაციას ან რეკლამებით სავსე ტაბს. ისინი იმსახურებენ ოცდაათ წამს და სუფთა ტექსტურ ველს.

ეს არის მთელი იდეა ამ კოლექციის მიღმა: ერთი გვერდი უფასო დეველოპერული უტილიტებით, რომლებიც მყისიერად იტვირთება, მთლიანად მუშაობს თქვენს ბრაუზერში, და არასდროს გთხოვთ რეგისტრაციას. JSON ფორმატირება, Base64, URL კოდირება, JWT დეკოდირება, ფერის კონვერტაცია, regex ტესტირება, დროის შტამპის მათემატიკა და HTTP სტატუს-კოდების ცნობარი — ყველაფერი ერთ ადგილას ცხოვრობს. თქვენ წყვეტთ თქვენი მონაცემების ჩასმას იმაში, რასაც Google პირველად აჩვენებს, და წყვეტთ ფიქრს, ხომ არ ინახავს ამას შემთხვევითი საიტი.

რას აკეთებს სინამდვილეში თითოეული ხელსაწყო

JSON ფორმატერი იღებს ერთ-სტრიქონიან, ესქეიპირებულ JSON-ის კედელს და აქცევს მას რაღაცად, რაც ადამიანს შეუძლია გადახედოს. ვთქვათ, webhook ისროლა და თქვენმა ჟურნალებმა დაიჭირეს ნედლი სხეული ერთ უზარმაზარ სტრიქონად. ჩასვით, აირჩიეთ ორ- ან ოთხ-სვეტიანი დაშორება, და მიიღებთ წასაკითხ ხეს, სინტაქსური შეცდომის ზუსტი მითითებით, თუ ასეთი არსებობს. ის ვალიდაციას ატარებს ფორმატირებისას, ასე რომ დაკარგული მძიმე ან ბრჭყალების გარეშე დატოვებული გასაღები გამოვლინდება, ვიდრე თქვენი აპლიკაციის სამ ფენაში ჩუმად ჩავარდეს.

Base64 კოდირება/დეკოდირება არის ის ცხენი, რომელსაც მუდმივად მიმართავთ, ამის შესახებ ფიქრის გარეშეც. მონაცემთა URI-ები, Basic Auth ჰედერები, ბინარული ბლობები, ჩატენილი კონფიგურაციის ფაილებში, ტოკენის სეგმენტები — ყველა Base64-ია. დეკოდირეთ ჰედერის მნიშვნელობა იმის დასადასტურებლად, რომ ავტორიზაციის მონაცემები იგზავნება ისე, როგორც ელით, ან დაშიფრეთ პატარა სურათი მის ხაზში ჩასასმელად. ის სუფთად ამუშავებს UTF-8-ს, რაც მნიშვნელოვანია იმ წუთს, როცა თქვენი შეყვანა უბრალო ASCII არაა.

URL კოდირება/დეკოდირების ხელსაწყო აგვარებს კლასიკურ ხარვეზს, როცა query პარამეტრი შეიცავს გამოტოვებას, ამპერსანდს ან პლუს ნიშანს და ჩუმად ამტვრევს თქვენს მოთხოვნას. თუ ბმულს ხელით აშენებთ და მნიშვნელობაა name=John & Co, გჭირდებათ ეს ამპერსანდი ესქეიპირებული, როგორც %26, თორემ სერვერი მას წაიკითხავს პარამეტრის გამყოფად. ჩასმა, კოდირება, კოპირება. დეკოდირება საწინააღმდეგო მიმართულებით მუშაობს, როცა უყურებთ ჟურნალირებულ URL-ს, სავსეს პროცენტის კოდებით, და ცდილობთ გაარკვიოთ, რა მოთხოვნეს სინამდვილეში.

აბსტრაქტული ციმციმა ფრჩხილები და ჩალაგებული მონაცემთა სტრუქტურები მუქ ინდიგოსა და ციაცისფერში, რომლებიც წარმოადგენენ დეველოპერულ ხელსაწყოთა კოლექციას
ერთი გვერდი, ბევრი პატარა საქმე: ფორმატირება, დეკოდირება, კონვერტაცია, ტესტირება.

ტოკენის ხელსაწყო და მნიშვნელოვანი გაფრთხილება

JWT დეკოდერი ყოფს ტოკენს მისი სამ წერტილით გამოყოფილ ნაწილად და გაჩვენებთ ჰედერსა და payload-ს, როგორც უბრალო JSON-ს. ავთენტიფიკაციის გამართვისას, ეს ოქროსფასეულია: შეამოწმეთ, რომელი ალგორითმით არის ტოკენი ხელმოწერილი, წაიკითხეთ sub, დაადასტურეთ, რომ exp პრეტენზია ჯერ არ გასულა, და ნახეთ ზუსტად რომელ scope-ებს ან როლებს გადასცემს თქვენი გეითვეი კლიენტს.

აქ არის ის ნაწილი, რომელსაც ხალხი ივიწყებს. JWT-ის დეკოდირება არ ნიშნავს მის ვერიფიკაციას. Payload უბრალოდ Base64url-ია — ნებისმიერს, ვისაც ტოკენი უჭირავს, შეუძლია წაიკითხოს მასში ყველა პრეტენზია, და ეს ხელსაწყო ზუსტად ამას აკეთებს და არაფერს მეტს. ის არ ამოწმებს ხელმოწერას, ასე რომ დეკოდირებული ტოკენი გეუბნებათ, რას ამბობს ტოკენი, და არა იმას, ნამდვილია თუ არა. არასდროს ენდოთ დეკოდერისგან მიღებულ პრეტენზიებს ავტორიზაციის გადაწყვეტილებისთვის; ეს თქვენი სერვერის საქმეა, ხელმოწერის გასაღებით. გამოიყენეთ დეკოდერი გასაგებად და გასამართად, არასდროს ვალიდაციისთვის.

Regex ტესტერი ხურავს ყველაზე მაბრაზებელი უტილიტის წრეს. დაწერეთ თქვენი ნიმუში, ჩააგდეთ სატესტო ტექსტი, და უყურეთ, როგორ ინიშნება დამთხვევები ცოცხლად, სანამ ბეჭდავთ. Capture ჯგუფები ჩამოთვლილია, ასე რომ შეგიძლიათ დაადასტუროთ, რომ ჯგუფი ორი ნამდვილად იჭერს წელს და არა მთელ თარიღს. ეს სჯობს edit-save-rerun ციკლს, ნიმუშის ტესტირებას თქვენს ნამდვილ კოდბაზაში, და არის სწრაფი გზა იმის გასაგებად, რატომ ყლაპავს ხარბი კვანტიფიკატორი უფრო მეტს, ვიდრე გინდოდათ.

დანარჩენი: HEX↔RGB კონვერტორი აქცევს #1a2b3c-ს rgb(26, 43, 60)-ად და უკან, როცა თქვენი დიზაინის ტოკენები და CSS არ ეთანხმებიან ერთმანეთს. Unix დროის შტამპის კონვერტორი აქცევს 1718900000-ს ნამდვილ თარიღად და დროდ, რაც გჭირდებათ ყოველთვის, როცა მონაცემთა ბაზა ინახავს epoch წამებს და თქვენი თვალები ვერ პარსავენ მათ. და HTTP სტატუს-კოდის ცნობარი გიხსნით 422-ისა თუ 409-ის გამოცნობისგან, როცა API გამოძახება არასწორად მიდის.

აბსტრაქტული API მონაცემთა ხაზსადენი ციმციმა ტერმინალის სტილის პანელებით მუქლურჯსა და ოქროსფერში, წაუკითხავი ტექსტის გარეშე
ყველაფერი მუშაობს იმ ტაბში, რომელიც უკვე გახსნილი გაქვთ.

ლოკალური დამუშავება, ისე რომ შეგეძლოთ სენსიტიური მასალის ჩასმა

ეს არის ის ნაწილი, რომელიც ყველაზე მნიშვნელოვანია ნებისმიერისთვის, ვინც პროდაქშენ მონაცემებს ეხება. თითოეული ხელსაწყო აქ მუშაობს კლიენტის მხარეს, JavaScript-ში. თქვენი შეყვანა არასდროს ტოვებს ბრაუზერს — არ არსებობს ატვირთვა, არ არსებობს მოგზაურობა სერვერამდე და უკან, არაფერია ჟურნალირებული. ეს ნიშნავს, რომ შეგიძლიათ ჩასვათ ნამდვილი წვდომის ტოკენი მისი პრეტენზიების შესამოწმებლად, დეკოდირება Base64 ჰედერისა, რომელიც შეიცავს ავტორიზაციის მონაცემებს, ან API პასუხის ფორმატირება, სავსე მომხმარებელთა მონაცემებით, ისე რომ ეს არასდროს გაიაროს ქსელში. გინდათ მტკიცებულება? გახსენით თქვენი დეველოპერული ხელსაწყოები, უყურეთ ქსელის ტაბს, და ჩასვით. ვერაფერს ნახავთ გასულს. სენსიტიური მონაცემებისთვის, ლოკალურ-მხოლოდ ხელსაწყო არ არის სასურველი დამატება; ეს არის ერთადერთი პასუხისმგებლიანი ვარიანტი.

ხშირად დასმული კითხვები

ეს დეველოპერული ხელსაწყოები ნამდვილად უფასოა, რეგისტრაციის გარეშე?

დიახ. თითოეული უტილიტა უფასოდ გამოსაყენებელია, არ საჭიროებს ანგარიშს და არ გააჩნია გამოყენების შეზღუდვა. გახსენით გვერდი და დაიწყეთ მუშაობა.

იგზავნება ჩემი მონაცემები სერვერზე ამ ხელსაწყოების გამოყენებისას?

არა. ყველაფერი მუშაობს კლიენტის მხარეს, თქვენს ბრაუზერში. თქვენი შეყვანა არასდროს იტვირთება, ასე რომ უსაფრთხოდ შეგიძლიათ ჩასვათ ტოკენები, ავტორიზაციის მონაცემები და პირადი API პასუხები.

ამოწმებს JWT დეკოდერი ტოკენის ხელმოწერას?

არა. ის მხოლოდ დეკოდირებს ჰედერსა და payload-ს, ისე რომ შეგეძლოთ პრეტენზიების წაკითხვა. დეკოდირება არ ნიშნავს ვერიფიკაციას. ხელმოწერის ვერიფიკაციას სჭირდება ხელმოწერის გასაღები და ის თქვენს სერვერზეა.

რა განსხვავებაა Base64 კოდირებასა და დაშიფვრას შორის?

Base64 არის კოდირება, არა დაშიფვრა. ის სრულად შექცევადია ნებისმიერისთვის და არანაირ უსაფრთხოებას არ სთავაზობს. ის არსებობს ბინარული მონაცემების ტექსტად წარმოსადგენად და არა მათ დასამალად.

რომელ regex სახეობას მხარს უჭერს regex ტესტერი?

ის იყენებს JavaScript-ის რეგულარულ გამონათქვამთა ძრავას, რომელიც მუშაობს თქვენს ბრაუზერში, ცოცხალი დამთხვევის ხაზგასმითა და capture ჯგუფის გამოსახვით, სანამ ბეჭდავთ.

შემიძლია არასწორი JSON-ის ფორმატირება?

ფორმატერი შეეცდება, და თუ JSON გატეხილია, ის მიუთითებს შეცდომის ადგილს და გეუბნებათ, რა არასწორია, ისე რომ შეძლოთ გასწორება და თავიდან ფორმატირება.