window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster υπάρχει ήδη') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Ασφάλεια σε πακέτα Javascript - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2019-03-26
Ανάπτυξη λογισμικού

Ασφάλεια σε πακέτα Javascript

Daniel Grek

Κάθε μέρα ο αριθμός των πακέτων Javascript αυξάνεται. Είναι το αποτέλεσμα της δραστηριότητας μιας κοινότητας, η οποία, από τη μία πλευρά, απαιτεί νέες λύσεις, από την άλλη - τις παράγει ως μορφή αυτο-ανάπτυξης ή υλοποίησης. Μια τόσο μεγάλη ανάπτυξη ανοίγει νέες πόρτες και δυνατότητες, αλλά φέρνει και κινδύνους, τους οποίους κάθε προγραμματιστής πρέπει να γνωρίζει.

Στα τέλη Νοεμβρίου 2018, η κοινότητα του GitHub ανέφερε μια σοβαρή ευπάθεια στο event-stream - πακέτο που βοηθά στην εργασία με κόμβος εκδηλώσεις πιο αποτελεσματικά. Ήταν αρκετά δημοφιλές, καθώς ο αριθμός των λήψεων κατά τη συγκεκριμένη περίοδο ξεπερνούσε τα 2,2 εκατομμύρια ανά εβδομάδα (σε σύγκριση με το React με 3,7 εκατομμύρια). Το Event-stream, καθώς και οι εξαρτήσεις του, εξαρτιόνταν από μια άλλη βιβλιοθήκη - flatmap-steam, που έτυχε να έχει ενημερωθεί με ένα κακόβουλο λογισμικό κρυπτο-τσέπης. Αυτό επέτρεπε την κλοπή ιδιωτικών κλειδιών και άλλων λεπτομερειών από τους λογαριασμούς των χρηστών σε μηχανήματα στα οποία ήταν ενσωματωμένο το πακέτο.

Τελικά, η flatmap-stream αφαιρέθηκε από την NPM, γεγονός που δημιούργησε χρονικά προβλήματα με πολλές άλλες βιβλιοθήκες. Τον Μάιο του ίδιου έτους, η κοινότητα βρήκε μια κερκόπορτα μέσα στην το getcookie πακέτο, το οποίο αποτελούσε μέρος πολλών άλλων εξαρτήσεων. Τέτοια παραδείγματα μπορούν να πολλαπλασιαστούν, γεγονός που αποδεικνύει ότι είναι σημαντικό να δίνετε προσοχή στις εξαρτήσεις που εγκαθίστανται σε ένα έργο, όχι μόνο από την Javascript αλλά και σε γενικότερο πλαίσιο.

Βασιστείτε σε επίσημες λύσεις και μεγάλες κοινότητες

Στο μέτρο του δυνατού, είναι σημαντικό να βασίζεστε σε επίσημες λύσεις στο έργο σας. Δεν είναι απλώς λιγότερο ευάλωτες λόγω καλύτερης διαδικασίας ανάπτυξης. Μια μεγάλη κοινότητα, η οποία συνήθως συνοδεύεται από ένα καλύτερο εμπορικό σήμα, βοηθάει στον πολύ ταχύτερο εντοπισμό των προβλημάτων και, το σημαντικότερο, στην εξεύρεση καλών λύσεων.

Χρήση τάσεων NPM

Ασφάλεια JavaScript

Σχήμα 1 Τάση Webpack NPM.

Διάγραμμα

Σχήμα 2. Τάση της ροής γεγονότων NPM.

Μερικές φορές, η γνώση της τρέχουσας κατάστασης του πακέτου μπορεί να μην αντιπροσωπεύει το παρελθόν του. Μια γρήγορη ματιά στο διάγραμμα τάσεων του npm μπορεί να σας δείξει μια πραγματική τάση του πακέτου. Θα δείξει όχι μόνο τις μεγάλες κορυφές, όπου θα μπορούσε να βρεθεί κάποια ευπάθεια, αλλά και τη γενική κατάσταση ενός συγκεκριμένου πακέτου (ΣΗΜΕΙΩΣΗ: οι μεγάλες κορυφές στις τάσεις της google κοντά στις 24 - 30 Δεκεμβρίου αντιπροσωπεύουν την περίοδο των διακοπών, η οποία μπορεί να μην αντιπροσωπεύει απαραίτητα κάποιο πρόβλημα). Ως παράδειγμα, ρίξτε μια ματιά στην εικόνα 1 - μια αντιπροσωπευτική τάση της λήψης του Webpack ανά εβδομάδα. Θα δείτε σταθερή αύξηση χωρίς σημεία διακοπής, γεγονός που μπορεί να υποδηλώνει ότι το Webpack είναι ένα σταθερό και ασφαλές πακέτο προς χρήση. Από την άλλη πλευρά, στο σχήμα 2 θα βρείτε μια μεγάλη πτώση τον Νοέμβριο, η οποία αποτελεί σαφές μήνυμα ότι κάτι λάθος μπορεί να συνέβη εκείνη την περίοδο (κάτι που ήδη γνωρίζουμε ότι ισχύει).

Έλεγχος εξάρτησης

Ο καλύτερος και πιο αξιόπιστος τρόπος για να επαληθεύσετε την κατάσταση των εξαρτήσεών σας είναι να εκτελέσετε ένα έλεγχος. Αυτή η εντολή είναι τώρα διαθέσιμη εγγενώς τόσο για το yarn όσο και για το npm, αν και απαιτεί τις τελευταίες εκδόσεις τους. Στέλνει μια λίστα με τις τρέχουσες εξαρτήσεις σε ένα κατάλληλο τελικό σημείο και επιστρέφει πληροφορίες που περιέχουν τις τρέχουσες ευπάθειές τους και άλλες λεπτομέρειες χρήσης, συμπεριλαμβανομένης της αναφοράς στην τεκμηρίωση. (εικόνα3).

Ενδιαφέροντα δεδομένα

Σχήμα 3. Παράδειγμα αποτελέσματος της εντολής npm audit. Πηγή: https://docs.npmjs.com

Η διαχείριση των εξαρτήσεων στη Javascript δεν είναι εύκολη υπόθεση. Ο αριθμός των λύσεων αυξάνεται καθημερινά, επομένως θυμηθείτε να επιλέγετε τις εξαρτήσεις σας με σύνεση και προσοχή. Συνεχίστε να ελέγχετε το τρέχον έργο σας και να ενημερώνετε τακτικά τα πακέτα σας.

Για να μάθετε περισσότερα σχετικά με τις εξαρτήσεις javascript και πώς να επιλύσετε ορισμένα από τα προβλήματά τους, παρακαλώ ελέγξτε αυτό το άρθρο.

Πηγή:

  1. https://github.com/dominictarr/event-stream/issues/116
  2. https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
  3. https://blog.npmjs.org/post/173526807575/reported-malicious-module-getcookies
  4. https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
  5. https://docs.npmjs.com/cli/audit
  6. https://yarnpkg.com/lang/en/docs/cli/audit/

Σχετικά άρθρα

Ανάπτυξη λογισμικού

Κατασκευάστε μελλοντικά ασφαλείς εφαρμογές Web: γνώσεις από την ομάδα εμπειρογνωμόνων του The Codest

Ανακαλύψτε πώς η The Codest υπερέχει στη δημιουργία κλιμακούμενων, διαδραστικών εφαρμογών ιστού με τεχνολογίες αιχμής, παρέχοντας απρόσκοπτη εμπειρία χρήστη σε όλες τις πλατφόρμες. Μάθετε πώς η τεχνογνωσία μας οδηγεί στον ψηφιακό μετασχηματισμό και την επιχειρηματική...

THECODEST
Ανάπτυξη λογισμικού

Top 10 εταιρείες ανάπτυξης λογισμικού με έδρα τη Λετονία

Μάθετε για τις κορυφαίες εταιρείες ανάπτυξης λογισμικού της Λετονίας και τις καινοτόμες λύσεις τους στο τελευταίο μας άρθρο. Ανακαλύψτε πώς αυτοί οι τεχνολογικοί ηγέτες μπορούν να βοηθήσουν στην ανύψωση της επιχείρησής σας.

thecodest
Λύσεις Enterprise & Scaleups

Βασικά στοιχεία ανάπτυξης λογισμικού Java: Α Guide to Outsourcing Successfully (Οδηγός για την επιτυχή εξωτερική ανάθεση)

Εξερευνήστε αυτόν τον βασικό οδηγό για την επιτυχή ανάπτυξη λογισμικού outsourcing Java για να αυξήσετε την αποδοτικότητα, να αποκτήσετε πρόσβαση στην τεχνογνωσία και να οδηγήσετε την επιτυχία των έργων με The Codest.

thecodest
Ανάπτυξη λογισμικού

Ο απόλυτος οδηγός για το Outsourcing στην Πολωνία

Η έξαρση της outsourcing στην Πολωνία οφείλεται στις οικονομικές, εκπαιδευτικές και τεχνολογικές εξελίξεις, που ευνοούν την ανάπτυξη της πληροφορικής και το φιλικό προς τις επιχειρήσεις κλίμα.

TheCodest
Λύσεις Enterprise & Scaleups

Ο πλήρης οδηγός εργαλείων και τεχνικών ελέγχου πληροφορικής

Οι έλεγχοι ΤΠ διασφαλίζουν ασφαλή, αποτελεσματικά και συμβατά συστήματα. Μάθετε περισσότερα για τη σημασία τους διαβάζοντας ολόκληρο το άρθρο.

The Codest
Jakub Jakubowicz CTO & Συνιδρυτής

Εγγραφείτε στη βάση γνώσεών μας και μείνετε ενήμεροι για την τεχνογνωσία από τον τομέα της πληροφορικής.

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

    elGreek
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek