Nango არის კოდზე ორიენტირებული პლატფორმა, რომელიც მომხმარებლებს API ინტეგრაციების აგებაში ეხმარება. პლატფორმის საშუალებით შესაძლებელია აპლიკაციების დაკავშირება Salesforce-თან, Google Calendar-თან, Slack-სა და ასობით სხვა სერვისთან. ამ ინტეგრაციების უმეტესობა თავად კლიენტების მიერ არის დაწერილი და Nango-ს ინფრასტრუქტურაზე ეშვება.
ეს კოდი „უცხოა“ (untrusted), რაც იმას ნიშნავს, რომ მას შეუძლია ნებისმიერი მოქმედების შესრულება: API-ის გამოძახება, მონაცემების ტრანსფორმაცია ან სისტემის დაზიანების მცდელობა. ყოველთვიურად Nango 150 მილიონზე მეტ ასეთ ფუნქციას ამუშავებს.
თავდაპირველად, კომპანია იყენებდა Node.js-ის სენდბოქსს (vm2), რომელიც იმავე პროცესზე მუშაობდა, სადაც ძირითადი კოდი. თუმცა, 2023 წელს აღმოჩენილმა უსაფრთხოების ხარვეზებმა აჩვენა, რომ პროცესის გაზიარება არ არის უსაფრთხო და კოდს შეუძლია სენდბოქსიდან გაქცევა.
ამის შემდეგ Nango-მ არქიტექტურა შეცვალა. სისტემა ორ ნაწილად გაიყო: დისპეტჩერი და შემსრულებელი (runner). თითოეული მომხმარებელი იღებს საკუთარ, დამოუკიდებელ შემსრულებელს, რაც გამორიცხავს ერთი კლიენტის კოდის ზეგავლენას მეორეზე.
2025 წლისთვის კომპანია AWS Lambda-ზე გადავიდა. Lambda-ს გამოყენებით, თითოეული შესრულება იზოლირებულია საკუთარ მიკრო-ვირტუალურ მანქანაში (microVM). ეს უზრუნველყოფს გაცილებით ძლიერ უსაფრთხოებას, ვიდრე საერთო პროცესები.
თუმცა, AWS Lambda-ს გამოყენებასაც აქვს თავისი სირთულეები. რადგან გარემო შეიძლება ხელახლა იქნას გამოყენებული, Nango-მ დანერგა მკაცრი იზოლაცია: თითოეული მომხმარებლის შესრულება მიბმულია მის საკუთარ Lambda ფუნქციაზე. ეს ხელს უშლის „ცივი სტარტების“ პრობლემას და უზრუნველყოფს მონაცემთა უსაფრთხოებას.
ძირითადი გაკვეთილები
- სენდბოქსი არ არის უსაფრთხოების გარანტი: პროცესის დონეზე იზოლაცია მარტივად ირღვევა.
- იზოლაცია მომხმარებლის დონეზე: უსაფრთხოების ზღვარი უნდა გაივლებოდეს მომხმარებლის იდენტობის მიხედვით.
- რეზუმირებადი სამუშაოები: გრძელვადიანი პროცესების ნაცვლად, უმჯობესია მოკლე და განახლებადი სამუშაოების შესრულება.





დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.