Η βασική διαφορά μεταξύ XSS και CSRF είναι ότι, στο XSS (ή Cross Site Scripting), ο ιστότοπος δέχεται τον κακόβουλο κώδικα ενώ, στο CSRF (ή Cross Site Request Forgery), ο κακόβουλος κώδικας αποθηκεύεται στο τρίτο ιστότοποι για πάρτι. Το XSS είναι ένας τύπος ευπάθειας ασφαλείας υπολογιστή σε εφαρμογές web που επιτρέπει στους εισβολείς να εισάγουν σενάρια από την πλευρά του πελάτη σε ιστοσελίδες που προβάλλονται από άλλους χρήστες. Από την άλλη πλευρά, το CSRF είναι ένας τύπος κακόβουλης δραστηριότητας ενός χάκερ ή ενός ιστότοπου που μεταδίδει μη εξουσιοδοτημένες εντολές που θα εμπιστεύεται η εφαρμογή Ιστού του χρήστη.
Η ανάπτυξη Ιστού είναι η διαδικασία προγραμματισμού ενός ιστότοπου σύμφωνα με τις απαιτήσεις του πελάτη. Κάθε οργανισμός διατηρεί ιστοσελίδες. Αυτοί οι ιστότοποι συμβάλλουν στη βελτίωση της επιχείρησης και στην απόκτηση κέρδους. Ταυτόχρονα, μπορεί να υπάρξουν απειλές που επηρεάζουν τη λειτουργικότητα του ιστότοπου. Δύο από αυτά είναι XSS και CSRF.
Τι είναι το XSS;
Το XSS είναι μια επίθεση ένεσης κώδικα που εισάγει κακόβουλο κώδικα στον ιστότοπο. Είναι μια από τις πιο κοινές επιθέσεις ιστοσελίδων. Μπορεί να επηρεάσει τον ιστότοπο και μπορεί επίσης να επηρεάσει τους χρήστες αυτού του ιστότοπου. Με άλλα λόγια, όταν υπάρχει μια επίθεση XSS στον ιστότοπο, αυτός ο κώδικας θα εκτελεστεί στους χρήστες αυτού του ιστότοπου από το πρόγραμμα περιήγησης.
Εικόνα 01: Επίθεση XSS
Μία κοινή γλώσσα για τη σύνταξη κακόβουλου κώδικα για XSS είναι η JavaScript. Το XSS μπορεί να κλέψει τα cookies του χρήστη. Μπορεί να τροποποιήσει την ιστοσελίδα ώστε να φαίνεται και να συμπεριφέρεται διαφορετικά. Επιπλέον, μπορεί να εμφανίζει λήψεις κακόβουλου λογισμικού και να αλλάζει τις ρυθμίσεις του χρήστη.
Υπάρχουν δύο τύποι επιθέσεων XSS. Ονομάζονται επίμονοι και μη επίμονοι. Σε επίμονη επίθεση XSS, ο κακόβουλος κώδικας αποθηκεύεται στη βάση δεδομένων του ιστότοπου. Ο χρήστης μπορεί να έχει πρόσβαση σε αυτό χωρίς καμία γνώση. Η μη επίμονη επίθεση XSS ονομάζεται επίσης Reflected XSS. Στέλνει το κακόβουλο σενάριο ως αίτημα HTTP. Αυτοί είναι οι δύο κύριοι τύποι στο XSS.
Τι είναι το CSRF;
Σε έναν ιστότοπο, υπάρχει η πλευρά του πελάτη και η πλευρά του διακομιστή. Οι ιστοσελίδες, οι φόρμες βρίσκονται στην πλευρά του πελάτη. Η πλευρά του διακομιστή εκτελεί μια ενέργεια όταν ο χρήστης ενεργεί. Η πλευρά του διακομιστή δέχεται αιτήματα και από άλλους ιστότοπους.
Η επίθεση CSRF εξαπατά τον χρήστη να αλληλεπιδράσει με μια σελίδα ή ένα σενάριο σε ιστότοπο τρίτου μέρους. Θα δημιουργήσει ένα κακόβουλο αίτημα στον ιστότοπο του χρήστη. Αλλά ο διακομιστής υποθέτει ότι πρόκειται για αίτημα από εξουσιοδοτημένο ιστότοπο. Όταν ο χρήστης το αποδεχτεί, ένας εισβολέας μπορεί να αναλάβει τον έλεγχο χρησιμοποιώντας τα δεδομένα που αποστέλλονται στο αίτημα.
Ένα παράδειγμα είναι το εξής. Ένας χρήστης συνδέεται στον τραπεζικό του λογαριασμό. Η τράπεζα του παρέχει ένα διακριτικό συνεδρίας. Ένας χάκερ μπορεί να ξεγελάσει τον χρήστη για να κάνει κλικ σε έναν ψεύτικο σύνδεσμο που οδηγεί στην τράπεζα. Όταν ο χρήστης κάνει κλικ στον σύνδεσμο, χρησιμοποιεί το διακριτικό της προηγούμενης περιόδου λειτουργίας. Στη συνέχεια, το αίτημα του χάκερ εκτελείται και ο λογαριασμός χρήστη παραβιάζεται. Μπορεί να μεταφέρει χρήματα από τον λογαριασμό του. Το αίτημα προς την τράπεζα είναι πλαστό καθώς χρησιμοποιεί το ίδιο διακριτικό περιόδου λειτουργίας του χρήστη. Συνολικά, είναι σημαντικό να γνωρίζετε πώς να προστατεύετε τον ιστότοπο από επίθεση CSRF στην ανάπτυξη ιστού.
Ποια είναι η διαφορά μεταξύ XSS και CSRF;
Το XSS σημαίνει Cross Site Scripting και CSRF σημαίνει Cross Site Request Forgery. Το XSS είναι ένας τύπος ευπάθειας ασφαλείας υπολογιστή σε εφαρμογές Ιστού που επιτρέπει στους εισβολείς να εισάγουν σενάρια από την πλευρά του πελάτη σε ιστοσελίδες που προβάλλονται από άλλους χρήστες. Το CSRF είναι ένας τύπος κακόβουλης δραστηριότητας ενός χάκερ ή ενός ιστότοπου που μεταδίδει μη εξουσιοδοτημένες εντολές που θα εμπιστεύεται η εφαρμογή Ιστού του χρήστη. Επίσης, το XSS απαιτεί JavaScript για να γράψει τον κακόβουλο κώδικα ενώ το CSRF δεν απαιτεί JavaScript.
Επιπλέον, στο XSS, ο ιστότοπος δέχεται τον κακόβουλο κώδικα ενώ στο CSRF, ο κακόβουλος κώδικας αποθηκεύεται σε ιστότοπους τρίτων. Αυτή είναι η κύρια διαφορά μεταξύ XSS και CSRF. Συνήθως, ένας ιστότοπος που είναι ευάλωτος στην επίθεση XSS είναι επίσης ευάλωτος στην επίθεση CSRF. Ωστόσο, ένας ιστότοπος που διαθέτει προστασία από XSS εξακολουθεί να μπορεί να είναι ευάλωτος σε επιθέσεις CSRF.
Σύνοψη – XSS vs CSRF
XSS και CSRF είναι δύο τύποι επιθέσεων σε έναν ιστότοπο. Το XSS σημαίνει Cross Site Scripting ενώ το CSRF σημαίνει Cross Site Request Forgery. Η διαφορά μεταξύ XSS και CSRF είναι ότι, στο XSS, ο ιστότοπος δέχεται τον κακόβουλο κώδικα ενώ, στο CSRF, ο κακόβουλος κώδικας αποθηκεύεται σε ιστότοπους τρίτων.