Συχνά παρατηρείται ότι τα δεδομένα ανάρτησης ajax στον διακομιστή του έργου δεν επισημαίνονται με ετικέτες κατά της παραχάραξης, προκαλώντας επιθέσεις CSRF και είναι πολύ εύκολο να προσθέσετε σήματα κατά της παραχάραξης στο MVC Asp.net προσθέτοντας Html.AntiForgeryToken() στη φόρμα. Το Html.AntiForgeryToken() δημιουργεί ένα ζεύγος κρυπτογραφημένων συμβολοσειρών που αποθηκεύονται σε cookies και είσοδο. Φέρνουμε επίσης το AntiForgeryToken στην ανάρτηση ajax
Το Html.AntiForgeryToken() στο MVC είναι ένα μέτρο για την αποτροπή επιθέσεων πλαστογράφησης αιτημάτων μεταξύ τοποθεσιών (CSRF: Cross-site request forgery), το οποίο είναι διαφορετικό από το XSS (το XSS είναι επίσης γνωστό ως CSS: Cross-Site-Script), το XSS χρησιμοποιεί γενικά αξιόπιστους χρήστες στον ιστότοπο για να εισαγάγει κακόβουλο κώδικα σεναρίου στο δίκτυο για επίθεση. Το CSRF, από την άλλη πλευρά, είναι ένας ψευδο-αξιόπιστος χρήστης που επιτίθεται σε έναν ιστότοπο. Αρχικά, ας δούμε τον κώδικα ως εξής:
Κατά την εκτέλεση, ο κώδικας html που δημιουργείται μοιάζει με αυτό:
Ας κάνουμε κλικ στο κουμπί δοκιμής για να ζητήσουμε μια δοκιμή και να δούμε αν έχει cookies κατά της παραχάραξης, όπως φαίνεται στην παρακάτω εικόνα:
Ο κωδικός στον ελεγκτή είναι ο εξής:
Πρέπει να προσθέσουμε τη δυνατότητα ValidateAntiForgeryToken σε κάθε ελεγκτή, εάν ο χρήστης δεν φέρει το AntiForgeryToken, μπορούμε να επιστρέψουμε μια φιλική προτροπή στον χρήστη, ως εξής:
|