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

Διαβάστε το αίτημα, όχι τη γραμμή διευθύνσεων

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

Το να αποκαλείς τον πόρο απλώς ένα ενσωματωμένο αρχείο δεν κάνει την αντικατάστασή του ακίνδυνη.

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

Μάθετε ποιοι πόροι αποκλείονται και ποιοι αναβαθμίζονται

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

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

Ένα αποκλεισμένο γραφικό στοιχείο δεν είναι απόδειξη ότι απέτυχε η σήραγγα. Είναι απόδειξη ότι το πρόγραμμα περιήγησης έκανε τη δουλειά του.

Διορθώστε την αναφορά στην πηγή της

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

Στη συνέχεια επιβεβαιώστε ότι ο πόρος σερβίρεται όντως μέσω HTTPS με έγκυρη ταυτότητα, γιατί μια αλλαγή σχήματος δεν μπορεί να δημιουργήσει μια υπηρεσία που δεν δημοσιεύτηκε ποτέ εκεί.

grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1

Ακολουθήστε και τις ανακατευθύνσεις, γιατί μια αναφορά που αρχίζει με HTTPS μπορεί να καταλήξει σε διαδρομή παράδοσης απλού κειμένου. Όταν μια εξάρτηση απλώς δεν έχει διαθέσιμη ασφαλή παράδοση, αφαιρέστε την ή αντικαταστήστε την μέσω της κανονικής διαδικασίας αλλαγής αντί να παραδώσετε μια παράκαμψη. Για τον χρήστη, αφήστε τις προστασίες του προγράμματος περιήγησης ενεργές και αναφέρετε στον ιδιοκτήτη του ιστότοπου τη διεύθυνση URL του πόρου, τον τύπο του και το μήνυμα της κονσόλας. Μην κυκλοφορείτε ποτέ οδηγίες που λένε στο προσωπικό να επιτρέψει μη ασφαλές περιεχόμενο για μία σελίδα, γιατί αυτή η εξαίρεση επιβιώνει του περιστατικού που την προκάλεσε.

Ελέγξτε ξανά τη σελίδα όπως την αγγίζουν οι χρήστες

Δοκιμάστε τις ενέργειες που φορτώνουν πόρους κατά παραγγελία, όχι μόνο το πρώτο έγγραφο. Οι σελίδες φέρνουν επιπλέον κώδικα, δεδομένα και λήψεις μετά από πάτημα κουμπιού, και αυτά τα αιτήματα είναι συχνά τα μη ασφαλή. Επιβεβαιώστε τα συγκεκριμένα αιτήματα και την ορατή συμπεριφορά με την προστασία ακόμη ενεργή. Μια δοκιμή που ξεκινά με χαλαρό προφίλ προγράμματος περιήγησης δεν μπορεί να σας δείξει τι βλέπει ένας κανονικός χρήστης.

Η σήραγγα έχει ακόμη τη δική της δουλειά, και αυτή η δουλειά είναι η πρόσβαση στο δίκτυο και όχι η ακεραιότητα της σελίδας.

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

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