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 }) }, } } })() Ασφάλεια εφαρμογών ιστού. Ευπάθεια Target="_blank" - 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-28
Ανάπτυξη λογισμικού

Ασφάλεια εφαρμογών ιστού. Ευπάθεια Target="_blank"

Lukasz Kolko

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

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

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

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

Μια επίθεση που εκμεταλλεύεται αυτή την ευπάθεια είναι το λεγόμενο "reverse tabnabbing". Πρόκειται για μια επίθεση κατά την οποία μια σελίδα που συνδέεται από τη σελίδα-στόχο είναι σε θέση να αντικαταστήσει τη σελίδα αυτή με, για παράδειγμα, έναν ιστότοπο phishing.

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

  1. Ας υποθέσουμε ότι το θύμα χρησιμοποιεί το Facebook, το οποίο είναι γνωστό για το άνοιγμα συνδέσμων μέσω target="_blank",
  2. Δημιουργήστε μια ψεύτικη viral σελίδα,
  3. Δημιουργήστε έναν ιστότοπο phishing που μοιάζει με σελίδα σύνδεσης στο Facebook,
  4. Βάλτε το παρακάτω κωδικός στη σελίδα του ιού, π.χ., μέσω ευπάθειας XSS που βρέθηκε
    window.opener.location = 'https://phishing-website/facebook.com',
  5. Το θύμα κάνει κλικ στο σύνδεσμο στο Facebook για τη ιογενή σελίδα,
  6. Η ιογενής σελίδα ανακατευθύνει την καρτέλα του Facebook στην ιστοσελίδα phishing ζητώντας από τον χρήστη να συνδεθεί ξανά.

Έτσι, μπορούμε να αλλάξουμε τη γονική καρτέλα από τη μολυσμένη σελίδα-στόχο με αντικείμενο παραθύρου από το API Web. Συνήθως, μια επίθεση περιλαμβάνει τη χρήση πολλών ανακαλυφθέντων ευπαθειών και απάτης phishing παράλληλα.

Το πρόβλημα

Όταν ανοίγουμε μια νέα καρτέλα στο πρόγραμμα περιήγησης χρησιμοποιώντας έναν σύνδεσμο με το target="_blank" χαρακτηριστικό, έχουμε πρόσβαση στον "παραπέμποντα" μας από τη νέα καρτέλα. Πιο συγκεκριμένα, στο ανοιχτήρι ιδιότητα του Παράθυρο αντικείμενο, το οποίο επιστρέφει μια αναφορά στο παράθυρο που το άνοιξε, τη γονική μας σελίδα.

Αυτό οφείλεται στη συμπεριφορά του Window.open() λειτουργία. Με πρόσβαση σε αυτό το χαρακτηριστικό, μπορούμε εύκολα να αντικαταστήσουμε τη σελίδα γονέα μας. Σημειώστε ότι ορισμένα σύγχρονα προγράμματα περιήγησης μπορούν να κάνουν window.opener λειτουργία στην καρτέλα στόχου ως null για να αποτρέψετε αυτή τη συμπεριφορά.

Παράδειγμα κώδικα

<code> <a href="https://github.com" target="_blank">Μετάβαση στο GitHub - μολυσμένος σύνδεσμος</a>
const
 if (link)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Παραπάνω μπορείτε να δείτε τον μολυσμένο σύνδεσμο, ο οποίος αρχικά ανοίγει μια νέα καρτέλα με μια σελίδα του GitHub, αλλά εν τω μεταξύ αλλάζει τη "γονική" μας σελίδα στην τοποθεσία Stackoverflow.

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

1. Σύνδεσμοι HTML

Προσθέστε rel="noopener noreferrer" στο <a> ετικέτα.

Το rel καθορίζει τη σχέση μεταξύ ενός συνδεδεμένου πόρου και του τρέχοντος εγγράφου.

noopener λέει στο πρόγραμμα περιήγησης να πλοηγηθεί στον στόχο χωρίς να παραχωρήσει πρόσβαση στον γονέα που τον άνοιξε. Καρτέλα στόχου Window.opener θα είναι null.

noreferrer εμποδίζει το πρόγραμμα περιήγησης, κατά την πλοήγηση στο στόχο, να στείλει στο γονέα τη διεύθυνση ή οποιαδήποτε άλλη τιμή ως referrer μέσω της διεύθυνσης referer Κεφαλίδα HTTP. Σημειώστε ότι το όνομα αυτής της επικεφαλίδας HTTP είναι σκόπιμα ανορθόγραφο ως "referrer".

2. JavaScript σύνδεσμοι

Για το JavaScript Window.open συνάρτηση, μπορείτε να προσθέσετε τις τιμές noopener και noreferrer στο windowFeatures παράμετρος του Window.open λειτουργία, αλλά διαφορετικά προγράμματα περιήγησης μπορεί να αντιδράσουν διαφορετικά, οπότε συνιστάται να κάνετε Window.opener ως null μετά τη χρήση Window.open() λειτουργία.

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

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

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

7 λόγοι για τους οποίους το ηλεκτρονικό σας κατάστημα χρειάζεται το Magento

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

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

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

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