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 }) }, } } })() Ασφάλεια εφαρμογών Web - Ευπάθεια XSS - 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
2021-04-16
Ανάπτυξη λογισμικού

Ασφάλεια εφαρμογών Web - Ευπάθεια XSS

Lukasz Kolko

Οι επιθέσεις XSS επιτρέπουν στους επιτιθέμενους να εισάγουν σενάρια από την πλευρά του πελάτη σε ιστοσελίδες που προβάλλονται από άλλους χρήστες. Τα κύρια αποτελέσματα αυτής της ευπάθειας είναι η δυνατότητα εκτέλεσης οποιωνδήποτε ενεργειών στο πλαίσιο του συνδεδεμένου χρήστη και η ανάγνωση οποιωνδήποτε δεδομένων στο πλαίσιο του συνδεδεμένου χρήστη.

Σενάριο επίθεσης

  1. Ο επιτιθέμενος εντοπίζει την ευπάθεια XSS σε έναν ιστότοπο που χρησιμοποιεί το θύμα, π.χ. τον ιστότοπο μιας τράπεζας.
  2. Το θύμα είναι συνδεδεμένο σε αυτή τη σελίδα
  3. Ο επιτιθέμενος στέλνει στο θύμα μια παραποιημένη διεύθυνση URL
  4. Το θύμα κάνει κλικ στη διεύθυνση URL
  5. Στο θύμα τράπεζα ιστοσελίδα, JavaScript κωδικός αρχίζει να εκτελείται για να υποκλέψει τα δεδομένα του χρήστη ή να εκτελέσει μια μεταφορά για λογαριασμό του στο λογαριασμό του επιτιθέμενου.

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

Τύποι XSS

1. Reflected XSS

Πρόκειται για ένα είδος όπου ο κώδικας HTML/JavaScript που περιέχεται σε οποιαδήποτε παράμετρο (π.χ. GET, POST ή cookie) εμφανίζεται στην απόκριση.

Μια σελίδα με είσοδο κειμένου για αναζήτηση για κάτι που βάζει την παράμετρο ?search=foo στην κατάληξη της διεύθυνσης URL κατά την αναζήτηση του API. Μετά την εισαγωγή οποιασδήποτε φράσης, εάν δεν βρεθεί, τοποθετείται ένα μήνυμα επιστροφής σε HTML ex.

<div>Δεν βρέθηκε αποτέλεσμα για <b>foo</b></div>

Μπορούμε να προσπαθήσουμε να βάλουμε τη διεύθυνση URL ?search=..

2.DOM XSS

Αυτό συμβαίνει όταν η εκτέλεσή του ενεργοποιείται με τη χρήση επικίνδυνων λειτουργιών στο JavaScript, όπως `eval` ή `innerHtml`. Το "Ζωντανό παράδειγμα" παρακάτω δείχνει μια επίθεση DOM XSS με βάση το `innerHtml` λειτουργία.

3. Αποθηκευμένο XSS

Εδώ ο κακόβουλος κώδικας γράφεται στην πλευρά του διακομιστή. Για παράδειγμα, μπορούμε να στείλουμε ένα σχόλιο με κακόβουλο κώδικα σε μια δημοσίευση ιστολογίου που μεταφορτώνεται στον διακομιστή. Το έργο του είναι, για παράδειγμα, να περιμένει τη μετριοπάθεια του διαχειριστή και στη συνέχεια να κλέψει τα δεδομένα της συνεδρίας του κ.λπ.

Μέθοδοι έγχυσης

1. Στο περιεχόμενο της ετικέτας

`onerror=alert('XSS')`στο

<img src onerror="alert('XSS')" />

2. Στο περιεχόμενο του χαρακτηριστικού

`" onmouseover=alert('XSS')` στο

<div class="" onmouseover="alert('XSS')""></div>

  1. Στο περιεχόμενο του χαρακτηριστικού χωρίς τα εισαγωγικά

x onclick=alert('XSS')στο

<div class="x" onclick="alert('XSS')"></div>

  1. Στο hrefΧαρακτηριστικό ef

javascript:alert('XSS') στο

<a href="javascript:alert('XSS')"></a>

  1. Στη συμβολοσειρά μέσα στον κωδικό JavaScript

";alert('XSS')// στο

  1. Στο χαρακτηριστικό με το συμβάν JavaScript

');alert('XSS')// όπου &#39, είναι ένα απλό εισαγωγικό, σε

<div onclick="change('&#39;);alert('XSS')//')">John</div>

  1. Στο href χαρακτηριστικό μέσα στο πρωτόκολλο JavaScript

);alert(1)// όπου %27 είναι ένα απλό εισαγωγικό, σε

<a href="javascript:change('');alert(1)//')">κάντε κλικ στο</a>


Ζωντανό παράδειγμα

Μέθοδοι άμυνας

  1. Κωδικοποίηση δεδομένων με χρήση ενσωματωμένων συναρτήσεων που βρίσκονται σε πολλά γλώσσες προγραμματισμού.
  2. Χρήση συστημάτων προτύπων με αυτόματη κωδικοποίηση. Τα περισσότερα από τα δημοφιλή πλαίσια που χρησιμοποιούν τέτοια συστήματα μας προστατεύουν από την έγχυση XSS (Django, Templates, Vue, React κ.λπ.).
  3. Μην χρησιμοποιείτε συναρτήσεις όπως eval ή Λειτουργία με αναξιόπιστα δεδομένα χρηστών.
  4. Μην χρησιμοποιείτε συναρτήσεις και ιδιότητες που αναθέτουν κώδικα HTML απευθείας στα στοιχεία του δέντρου DOM, π.χ, innerHTML, outerHTML, insertAdjacentHTML, ocument.write. Αντ' αυτού, μπορείτε να χρησιμοποιήσετε συναρτήσεις που αναθέτουν κείμενο απευθείας σε αυτά τα στοιχεία, όπως η textContent ή innerText.
  5. Να είστε προσεκτικοί όταν ανακατευθύνετε τον χρήστη σε μια διεύθυνση URL που βρίσκεται υπό τον έλεγχό του. Κίνδυνος έγχυσης location = 'javascript('XSS')'.
  6. Φιλτράρετε την HTML χρησιμοποιώντας βιβλιοθήκες όπως DOMPurify.
  7. Να είστε προσεκτικοί με το ανέβασμα .html ή .svg αρχεία. Μπορείτε να δημιουργήσετε έναν ξεχωριστό τομέα από τον οποίο θα εξυπηρετούνται τα ανεβασμένα αρχεία.
  8. Χρησιμοποιήστε το Πολιτική ασφάλειας περιεχομένου μηχανισμό.
  9. Ρίξτε μια ματιά στα φίλτρα anti-XSS που είναι ενσωματωμένα στα πιο δημοφιλή προγράμματα περιήγησης.

    Αν βρήκατε αυτό το άρθρο ενδιαφέρον, ακολουθήστε τον Lukasz στο Github: https://github.com/twistezo

Διαβάστε περισσότερα:

Στρατηγικές άντλησης δεδομένων στο NextJS

Rails API & CORS. Μια πινελιά συνείδησης

Γιατί πρέπει (πιθανώς) να χρησιμοποιήσετε την Typescript;

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

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

Κατασκευάστε μελλοντικά ασφαλείς εφαρμογές 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