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

Άποψη: 32621|Απάντηση: 2

[Ευπάθεια ασφαλείας] Ευπάθειες που λείπουν ή δεν είναι ασφαλείς στην κεφαλίδα "Content-Security-Policy"

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 11/6/2021 10:36:39 π.μ. | | | |
Η κεφαλίδα απόκρισης HTTP Content-Security-Policy επιτρέπει στον ιστότοπο να ελέγχει ποιους πόρους φορτώνει ο πράκτορας χρήστη για μια δεδομένη σελίδα. Εκτός από ειδικές περιπτώσεις, οι πολιτικές που ορίζονται περιλαμβάνουν κυρίως τον καθορισμό των τελικών σημείων προέλευσης και δέσμης ενεργειών του διακομιστή. Αυτό θα βοηθήσει να σταματήσουν οι επιθέσεις δέσμης ενεργειών μεταξύ τοποθεσιών

Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

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

Το πρώιμο Chrome υποστήριζε το CSP μέσω της κεφαλίδας απόκρισης X-WebKit-CSP, ενώ ο firefox και ο IE υποστήριζαν το X-Content-Security-Policy και το Chrome25 και το Firefox23 άρχισαν να υποστηρίζουν την τυπική Content-Security-Policy.

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


Αρχικά, ας δημιουργήσουμε ένα νέο έργο ASP.NET MVC, ας δημιουργήσουμε ένα νέο σενάριο js και ας φορτώσουμε δυναμικά τον κώδικα js των στατιστικών Baidu, ως εξής:




Όπως φαίνεται στο παραπάνω σχήμα, μπορούμε να δούμε τον κώδικα σεναρίου JS που έχει εισαχθεί με επιτυχία σε τρίτο μέρος (Baidu), εάν υπάρχει κάποιος κακόβουλος κώδικας στο JS τρίτου μέρους, όπως κλοπή cookies, τροποποίηση περιεχομένου, μετάβαση συνδέσμων κ.λπ.

Πώς μπορώ να σταματήσω την εισαγωγή μη ασφαλών σεναρίων JS τρίτων;

Λύση

Κεφαλή απόκρισηςΠροσθήκη "Content-Security-Policy"για παράδειγμα:

Content-Security-Policy: default-src 'self' Η σύνδεση με υπερσύνδεσμο είναι ορατή.;
                         connect-src «κανένα»·
Content-Security-Policy: connect-src Η σύνδεση με υπερσύνδεσμο είναι ορατή.
                         σενάριο-srcΗ σύνδεση με υπερσύνδεσμο είναι ορατή.

Οδηγία
Παράδειγμα τιμής εντολής
διευκρινίζω
προεπιλογή-src
«Εαυτός» cnd.a.com
Καθορίστε την προεπιλεγμένη πολιτική φόρτωσης για όλους τους τύπους πόρων (JS, IMAGE, CSS, WEB FONT, AJAX requests, iframes, πολυμέσα κ.λπ.) και χρησιμοποιήστε την προεπιλογή για ορισμένους τύπους πόρων εάν δεν υπάρχει ξεχωριστή καθορισμένη πολιτική.
σενάριο-src
«Εαυτός» js.a.com
Ορίστε μια πολιτική φόρτωσης για JavaScript.
στυλ-src
«Εαυτός» css.a.com
Ορίστε μια πολιτική φόρτωσης για ένα στυλ.
img-src
«Εαυτός» img.a.com
Καθορίστε μια πολιτική φόρτωσης για εικόνες.
σύνδεση-src
«Εαυτός»
Πολιτικές φόρτωσης για αιτήματα από Ajax, WebSockets κ.λπ. Εάν δεν επιτρέπεται, το πρόγραμμα περιήγησης προσομοιώνει μια απόκριση με κατάσταση 400.
γραμματοσειρά-src
font.a.com
Πολιτική φόρτωσης για WebFont.
αντικείμενο-src
«Εαυτός»
<object><embed> <applet> Οι πολιτικές φόρτωσης για προσθήκες όπως το flash εισήχθησαν για ετικέτες όπως το , ή το .
media-src
media.a.com
<audio> <video> Οι στρατηγικές φόρτωσης για πολυμέσα HTML που εισήχθησαν για ετικέτες όπως ή .
πλαίσιο-src
«Εαυτός»
Πολιτική φόρτωσης για πλαίσια.
αμμοδοχείο
Φόρμες επιτρέποντος
Ενεργοποιήστε το περιβάλλον προστατευμένης εκτέλεσης (παρόμοιο με την ιδιότητα φίλτρου ενός iframe) για τον πόρο που ζητήθηκε.
αναφορά-uri
/report-uri
Πείτε στο πρόγραμμα περιήγησης σε ποια διεύθυνση να υποβάλει πληροφορίες καταγραφής, εάν ο ζητούμενος πόρος δεν επιτρέπεται από την πολιτική. Ειδικό: Εάν θέλετε το πρόγραμμα περιήγησης να αναφέρει μόνο αρχεία καταγραφής και να μην αποκλείει τίποτα, μπορείτε να χρησιμοποιήσετε την κεφαλίδα Content-Security-Policy-Report-Only.

Ας τροποποιήσουμε το αρχείο web.config του έργου για να προσθέσουμε μια προσαρμοσμένη κεφαλίδα απόκρισης ως εξής:

Επαναλάβετε το έργο όπως φαίνεται παρακάτω:



Το πρόγραμμα περιήγησης απέκλεισε με επιτυχία τη φόρτωση σεναρίων js τρίτων:

Αρνήθηκε να φορτώσει το σενάριο 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319' επειδή παραβιάζει την ακόλουθη οδηγία για την Πολιτική Ασφάλειας Περιεχομένου: "script-src 'self' http://localhost:56888/ ". Σημειώστε ότι το 'script-src-elem' δεν ορίστηκε ρητά, επομένως το 'script-src' χρησιμοποιείται ως εναλλακτικό.
(Τέλος)




Προηγούμενος:ASP.NET MVC HttpΕντολή εκτέλεσης εφαρμογής
Επόμενος:Για να συνοψίσουμε τη δημοφιλή εγκυκλοπαίδεια User-Agent του προγράμματος περιήγησης
Δημοσιεύτηκε στις 17/12/2021 10:38:43 μ.μ. |
Μάθετε !!!!!!!!!!!!!!
Δημοσιεύτηκε στις 18/10/2022 5:16:34 μ.μ. |
Ψάχνω πολύ καιρό και μαθαίνω λίγα
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com