JavaScript PasteJacking

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


Μόνο το ακόλουθο σενάριο είναι ενσωματωμένο στην κακόβουλη πλευρά:

27670b8ba9840e688369822a3fcfb2d9

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

27670b8ba9840e688369822a3fcfb2d9

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

27670b8ba9840e688369822a3fcfb2d9

Το πρόχειρο μπορεί να χειριστεί (σε διαφορετική μορφή) ακόμη και χωρίς JavaScript:

27670b8ba9840e688369822a3fcfb2d9

Εάν επιλέξετε το κείμενο που θέλετε, για παράδειγμα στον πιο πρόσφατο Firefox (εδ. 45.0), δεν είναι αυτό το κείμενο αλλά το κείμενο πίσω από αυτό που καταλήγει στο πρόχειρο.

Και οι δύο μέθοδοι μπορούν να δοκιμαστούν ζωντανά εδώ. Εδώ είναι η παραλλαγή JS:

See the Pen Pastejacking #1 by David Vielhuber (@vielhuber) on CodePen.

Όπως και η παραλλαγή CSS:

See the Pen Pastejacking #2 by David Vielhuber (@vielhuber) on CodePen.

Πίσω