Ένας αναλυτικός οδηγός για το Trusted Types API, που εξετάζει τον ρόλο του στην πρόληψη επιθέσεων Cross-Site Scripting (XSS) και στην προώθηση του ασφαλούς χειρισμού του DOM στις σύγχρονες εφαρμογές web.
Trusted Types API: Ενίσχυση της Ασφάλειας μέσω Ασφαλούς Χειρισμού του DOM
Στη συνεχιζόμενη μάχη κατά των ευπαθειών του web, οι επιθέσεις Cross-Site Scripting (XSS) παραμένουν μια επίμονη απειλή. Αυτές οι επιθέσεις εκμεταλλεύονται ευπάθειες σε εφαρμογές web για να εισάγουν κακόβουλα σενάρια σε αξιόπιστους ιστότοπους, επιτρέποντας στους επιτιθέμενους να κλέψουν ευαίσθητα δεδομένα, να παραμορφώσουν ιστότοπους ή να ανακατευθύνουν τους χρήστες σε κακόβουλους ιστότοπους. Για την αντιμετώπιση αυτού, το Trusted Types API αναδεικνύεται ως ένας ισχυρός μηχανισμός άμυνας, προωθώντας τον ασφαλή χειρισμό του DOM και μειώνοντας σημαντικά τον κίνδυνο ευπαθειών XSS.
Κατανόηση του Cross-Site Scripting (XSS)
Οι επιθέσεις XSS συμβαίνουν όταν δεδομένα που παρέχονται από τον χρήστη ενσωματώνονται εσφαλμένα στην έξοδο μιας ιστοσελίδας χωρίς κατάλληλη απολύμανση (sanitization) ή κωδικοποίηση. Υπάρχουν τρεις κύριοι τύποι XSS:
- Αποθηκευμένο XSS (Stored XSS): Το κακόβουλο σενάριο αποθηκεύεται μόνιμα στον διακομιστή-στόχο (π.χ., σε μια βάση δεδομένων, ανάρτηση σε φόρουμ ή ενότητα σχολίων). Όταν άλλοι χρήστες αποκτούν πρόσβαση στα αποθηκευμένα δεδομένα, το σενάριο εκτελείται στους φυλλομετρητές τους.
- Αντανακλώμενο XSS (Reflected XSS): Το κακόβουλο σενάριο ενσωματώνεται σε ένα URL ή σε μια υποβολή φόρμας και αντανακλάται αμέσως πίσω στον χρήστη στην απόκριση. Αυτό συνήθως περιλαμβάνει την εξαπάτηση του χρήστη ώστε να κάνει κλικ σε έναν κακόβουλο σύνδεσμο.
- XSS βασισμένο στο DOM (DOM-based XSS): Το κακόβουλο σενάριο εκμεταλλεύεται ευπάθειες στον ίδιο τον κώδικα JavaScript από την πλευρά του πελάτη (client-side), αντί να βασίζεται στην αποθήκευση δεδομένων ή στην αντανάκλαση από την πλευρά του διακομιστή. Αυτό συχνά περιλαμβάνει τον άμεσο χειρισμό του Document Object Model (DOM).
Παραδοσιακά, οι προγραμματιστές βασίζονταν στην επικύρωση εισόδου και την κωδικοποίηση εξόδου για την πρόληψη επιθέσεων XSS. Αν και αυτές οι τεχνικές είναι απαραίτητες, η σωστή εφαρμογή τους μπορεί να είναι πολύπλοκη και συχνά είναι επιρρεπείς σε σφάλματα. Το Trusted Types API παρέχει μια πιο στιβαρή και φιλική προς τον προγραμματιστή προσέγγιση, επιβάλλοντας ασφαλείς πρακτικές κωδικοποίησης σε επίπεδο DOM.
Εισαγωγή στο Trusted Types API
Το Trusted Types API, ένα χαρακτηριστικό ασφαλείας της πλατφόρμας web, βοηθά τους προγραμματιστές να γράφουν ασφαλέστερες εφαρμογές web περιορίζοντας τη χρήση δυνητικά επικίνδυνων μεθόδων χειρισμού του DOM. Επιβάλλει τον κανόνα ότι τα DOM XSS sinks (τοποθεσίες όπου μπορεί να συμβεί έγχυση σεναρίου) μπορούν να δέχονται μόνο τιμές που έχουν ρητά απολυμανθεί και περιβληθεί σε ένα «Trusted Type». Αυτό ουσιαστικά δημιουργεί ένα σύστημα τύπων για τις συμβολοσειρές που χρησιμοποιούνται για τον χειρισμό του DOM, όπου μη αξιόπιστα δεδομένα δεν μπορούν να περάσουν απευθείας σε αυτά τα sinks.
Βασικές Έννοιες:
- DOM XSS Sinks: Αυτές είναι οι ιδιότητες και οι μέθοδοι που χρησιμοποιούνται συχνότερα για την έγχυση σεναρίου σε μια σελίδα. Παραδείγματα περιλαμβάνουν τα
innerHTML
,outerHTML
,src
,href
, καιdocument.write
. - Trusted Types: Αυτά είναι ειδικά αντικείμενα-περιτυλίγματα (wrapper objects) που υποδεικνύουν ότι μια συμβολοσειρά έχει εξεταστεί προσεκτικά και είναι ασφαλής για χρήση σε ένα DOM XSS sink. Το API παρέχει διάφορους ενσωματωμένους τύπους Trusted Types, όπως
TrustedHTML
,TrustedScript
, καιTrustedScriptURL
. - Πολιτικές Τύπων (Type Policies): Αυτοί είναι κανόνες που ορίζουν πώς μπορούν να δημιουργηθούν και να χρησιμοποιηθούν οι Trusted Types. Καθορίζουν ποιες συναρτήσεις επιτρέπεται να δημιουργούν Trusted Types και πώς οι υποκείμενες συμβολοσειρές απολυμαίνονται ή επικυρώνονται.
Πώς Λειτουργούν οι Trusted Types
Η βασική αρχή των Trusted Types είναι να εμποδίζουν τους προγραμματιστές από το να περνούν απευθείας μη αξιόπιστες συμβολοσειρές σε DOM XSS sinks. Όταν οι Trusted Types είναι ενεργοποιημένοι, ο φυλλομετρητής προκαλεί ένα TypeError
εάν μια κανονική συμβολοσειρά χρησιμοποιηθεί σε μια θέση όπου αναμένεται ένας Trusted Type.
Για να χρησιμοποιήσετε τους Trusted Types, πρέπει πρώτα να ορίσετε μια πολιτική τύπου. Μια πολιτική τύπου είναι ένα αντικείμενο JavaScript που καθορίζει πώς μπορούν να δημιουργηθούν οι Trusted Types. Για παράδειγμα:
if (window.trustedTypes && window.trustedTypes.createPolicy) {
window.myPolicy = trustedTypes.createPolicy('myPolicy', {
createHTML: function(input) {
// Απολυμάνετε την είσοδο εδώ. Αυτό είναι ένα placeholder. χρησιμοποιήστε μια πραγματική βιβλιοθήκη απολύμανσης.
let sanitized = DOMPurify.sanitize(input); // Παράδειγμα με χρήση του DOMPurify
return sanitized;
},
createScriptURL: function(input) {
// Επικυρώστε την είσοδο εδώ για να διασφαλίσετε ότι είναι ένα ασφαλές URL.
if (input.startsWith('https://example.com/')) {
return input;
} else {
throw new Error('Untrusted URL: ' + input);
}
},
createScript: function(input) {
//Να είστε πολύ προσεκτικοί κατά τη δημιουργία σεναρίου, κάντε το μόνο αν ξέρετε τι κάνετε
return input;
}
});
}
Σε αυτό το παράδειγμα, δημιουργούμε μια πολιτική τύπου με όνομα «myPolicy» με τρεις συναρτήσεις: createHTML
, createScriptURL
, και createScript
. Η συνάρτηση createHTML
απολυμαίνει τη συμβολοσειρά εισόδου χρησιμοποιώντας μια βιβλιοθήκη απολύμανσης όπως το DOMPurify. Η συνάρτηση createScriptURL
επικυρώνει την είσοδο για να διασφαλίσει ότι είναι ένα ασφαλές URL. Η συνάρτηση createScript
πρέπει να χρησιμοποιείται με εξαιρετική προσοχή, και ιδανικά να αποφεύγεται αν είναι δυνατόν, καθώς επιτρέπει την αυθαίρετη εκτέλεση σεναρίου.
Μόλις δημιουργηθεί μια πολιτική τύπου, μπορείτε να τη χρησιμοποιήσετε για να δημιουργήσετε Trusted Types:
let untrustedHTML = '
';
let trustedHTML = myPolicy.createHTML(untrustedHTML);
document.getElementById('myElement').innerHTML = trustedHTML;
Σε αυτό το παράδειγμα, περνάμε μια μη αξιόπιστη συμβολοσειρά HTML στη συνάρτηση createHTML
της πολιτικής τύπου μας. Η συνάρτηση απολυμαίνει τη συμβολοσειρά και επιστρέφει ένα αντικείμενο TrustedHTML
. Στη συνέχεια, μπορούμε να αναθέσουμε με ασφάλεια αυτό το αντικείμενο TrustedHTML
στην ιδιότητα innerHTML
ενός στοιχείου χωρίς να διακινδυνεύσουμε μια επίθεση XSS.
Οφέλη από τη Χρήση των Trusted Types
- Ενισχυμένη Ασφάλεια: Οι Trusted Types μειώνουν σημαντικά τον κίνδυνο επιθέσεων XSS εμποδίζοντας τους προγραμματιστές να περνούν απευθείας μη αξιόπιστες συμβολοσειρές σε DOM XSS sinks.
- Βελτιωμένη Ποιότητα Κώδικα: Οι Trusted Types ενθαρρύνουν τους προγραμματιστές να σκέφτονται πιο προσεκτικά για την απολύμανση και την επικύρωση δεδομένων, οδηγώντας σε βελτιωμένη ποιότητα κώδικα και πρακτικές ασφαλείας.
- Απλοποιημένες Επιθεωρήσεις Ασφαλείας: Οι Trusted Types καθιστούν ευκολότερο τον εντοπισμό και την επιθεώρηση πιθανών ευπαθειών XSS στον κώδικα, καθώς η χρήση των DOM XSS sinks ελέγχεται ρητά από τις πολιτικές τύπων.
- Συμβατότητα με το CSP: Οι Trusted Types μπορούν να χρησιμοποιηθούν σε συνδυασμό με την Πολιτική Ασφάλειας Περιεχομένου (Content Security Policy - CSP) για την περαιτέρω ενίσχυση της ασφάλειας των εφαρμογών web.
Παράγοντες προς Εξέταση κατά την Υλοποίηση
Η υλοποίηση των Trusted Types απαιτεί προσεκτικό σχεδιασμό και εκτέλεση. Εδώ είναι μερικοί σημαντικοί παράγοντες προς εξέταση:
- Εντοπισμός DOM XSS Sinks: Το πρώτο βήμα είναι να εντοπίσετε όλα τα DOM XSS sinks στην εφαρμογή σας. Αυτές είναι οι ιδιότητες και οι μέθοδοι που χρησιμοποιούνται για τον χειρισμό του DOM και που θα μπορούσαν δυνητικά να εκμεταλλευτούν επιθέσεις XSS.
- Επιλογή Βιβλιοθήκης Απολύμανσης: Επιλέξτε μια αξιόπιστη και καλά συντηρημένη βιβλιοθήκη απολύμανσης για να απολυμαίνετε τα μη αξιόπιστα δεδομένα πριν δημιουργήσετε Trusted Types. Το DOMPurify είναι μια δημοφιλής και αποτελεσματική επιλογή. Βεβαιωθείτε ότι το διαμορφώνετε σωστά για τις συγκεκριμένες ανάγκες σας.
- Ορισμός Πολιτικών Τύπων: Δημιουργήστε πολιτικές τύπων που καθορίζουν πώς μπορούν να δημιουργηθούν και να χρησιμοποιηθούν οι Trusted Types. Εξετάστε προσεκτικά τη λογική απολύμανσης και επικύρωσης στις πολιτικές τύπων σας για να διασφαλίσετε ότι είναι αποτελεσματικές στην πρόληψη επιθέσεων XSS.
- Ενημέρωση Κώδικα: Ενημερώστε τον κώδικά σας για να χρησιμοποιεί Trusted Types κάθε φορά που χειρίζεστε το DOM με δυνητικά μη αξιόπιστα δεδομένα. Αντικαταστήστε τις άμεσες αναθέσεις σε DOM XSS sinks με αναθέσεις Trusted Types.
- Εκτενής Έλεγχος: Ελέγξτε την εφαρμογή σας διεξοδικά μετά την υλοποίηση των Trusted Types για να διασφαλίσετε ότι λειτουργεί σωστά και ότι δεν υπάρχουν παλινδρομήσεις. Δώστε ιδιαίτερη προσοχή στις περιοχές όπου χειρίζεστε το DOM.
- Στρατηγική Μετάβασης: Η υλοποίηση των Trusted Types σε μια μεγάλη, υπάρχουσα βάση κώδικα μπορεί να είναι πρόκληση. Εξετάστε μια σταδιακή στρατηγική μετάβασης, ξεκινώντας από τις πιο κρίσιμες περιοχές της εφαρμογής σας. Μπορείτε αρχικά να ενεργοποιήσετε τους Trusted Types σε κατάσταση «report-only» για να εντοπίσετε παραβιάσεις χωρίς να διακόψετε τη λειτουργία της εφαρμογής σας.
Παραδείγματα Σεναρίων
Ας δούμε μερικά πρακτικά παραδείγματα για το πώς μπορούν να χρησιμοποιηθούν οι Trusted Types σε διαφορετικά σενάρια:
Σενάριο 1: Εμφάνιση Περιεχομένου που Δημιουργήθηκε από Χρήστες
Ένας ιστότοπος επιτρέπει στους χρήστες να υποβάλλουν σχόλια και αναρτήσεις. Χωρίς τους Trusted Types, η εμφάνιση αυτού του περιεχομένου θα μπορούσε να είναι ευάλωτη σε επιθέσεις XSS. Χρησιμοποιώντας τους Trusted Types, μπορείτε να απολυμάνετε το περιεχόμενο που δημιουργήθηκε από τον χρήστη πριν το εμφανίσετε, διασφαλίζοντας ότι τυχόν κακόβουλα σενάρια αφαιρούνται.
// Πριν από τους Trusted Types:
// document.getElementById('comments').innerHTML = userComment; // Ευάλωτο σε XSS
// Μετά τους Trusted Types:
let trustedHTML = myPolicy.createHTML(userComment);
document.getElementById('comments').innerHTML = trustedHTML;
Σενάριο 2: Φόρτωση Εξωτερικών Αρχείων JavaScript
Ένας ιστότοπος φορτώνει δυναμικά αρχεία JavaScript από εξωτερικές πηγές. Χωρίς τους Trusted Types, ένας κακόβουλος επιτιθέμενος θα μπορούσε δυνητικά να αντικαταστήσει ένα από αυτά τα αρχεία με το δικό του κακόβουλο σενάριο. Χρησιμοποιώντας τους Trusted Types, μπορείτε να επικυρώσετε το URL του αρχείου σεναρίου πριν το φορτώσετε, διασφαλίζοντας ότι προέρχεται από μια αξιόπιστη πηγή.
// Πριν από τους Trusted Types:
// let script = document.createElement('script');
// script.src = untrustedURL; // Ευάλωτο σε XSS
// document.head.appendChild(script);
// Μετά τους Trusted Types:
let trustedScriptURL = myPolicy.createScriptURL(untrustedURL);
let script = document.createElement('script');
script.src = trustedScriptURL;
document.head.appendChild(script);
Σενάριο 3: Ορισμός Χαρακτηριστικών Στοιχείων
Ένας ιστότοπος ορίζει χαρακτηριστικά σε στοιχεία DOM με βάση την είσοδο του χρήστη. Για παράδειγμα, ορίζοντας το χαρακτηριστικό `href` μιας ετικέτας άγκυρας. Χωρίς τους Trusted Types, ένας κακόβουλος επιτιθέμενος θα μπορούσε να εισάγει ένα JavaScript URI, οδηγώντας σε XSS. Με τους Trusted Types, μπορείτε να επικυρώσετε το URL πριν ορίσετε το χαρακτηριστικό.
// Πριν από τους Trusted Types:
// anchorElement.href = userInputURL; // Ευάλωτο σε XSS
// Μετά τους Trusted Types:
let trustedURL = myPolicy.createScriptURL(userInputURL);
anchorElement.href = trustedURL;
Trusted Types και Πολιτική Ασφάλειας Περιεχομένου (CSP)
Οι Trusted Types λειτουργούν καλά σε συνδυασμό με την Πολιτική Ασφάλειας Περιεχομένου (CSP) για να παρέχουν άμυνα σε βάθος (defense-in-depth) έναντι των επιθέσεων XSS. Το CSP είναι ένας μηχανισμός ασφαλείας που σας επιτρέπει να καθορίσετε ποιες πηγές περιεχομένου επιτρέπεται να φορτωθούν στον ιστότοπό σας. Συνδυάζοντας τους Trusted Types με το CSP, μπορείτε να δημιουργήσετε μια εξαιρετικά ασφαλή εφαρμογή web.
Για να ενεργοποιήσετε τους Trusted Types στο CSP, μπορείτε να χρησιμοποιήσετε την οδηγία require-trusted-types-for
. Αυτή η οδηγία καθορίζει ότι οι Trusted Types απαιτούνται για όλα τα DOM XSS sinks. Για παράδειγμα:
Content-Security-Policy: require-trusted-types-for 'script'; trusted-types myPolicy;
Αυτή η κεφαλίδα CSP λέει στον φυλλομετρητή να απαιτεί Trusted Types για κάθε εκτέλεση σεναρίου και να επιτρέπει μόνο Trusted Types που δημιουργούνται από την πολιτική τύπου «myPolicy».
Υποστήριξη από Φυλλομετρητές και Polyfills
Η υποστήριξη των Trusted Types από τους φυλλομετρητές αυξάνεται, αλλά δεν είναι ακόμη καθολικά διαθέσιμη. Στα τέλη του 2024, οι μεγάλοι φυλλομετρητές όπως ο Chrome, ο Firefox και ο Edge έχουν καλή υποστήριξη. Η υποστήριξη του Safari υστερεί. Ελέγξτε το CanIUse.com για τις τελευταίες πληροφορίες συμβατότητας φυλλομετρητών.
Για παλαιότερους φυλλομετρητές που δεν υποστηρίζουν εγγενώς τους Trusted Types, μπορείτε να χρησιμοποιήσετε ένα polyfill. Ένα polyfill είναι ένα κομμάτι κώδικα JavaScript που παρέχει τη λειτουργικότητα ενός νεότερου χαρακτηριστικού σε παλαιότερους φυλλομετρητές. Υπάρχουν διαθέσιμα διάφορα polyfills για τους Trusted Types, όπως αυτό που παρέχεται από την Google. Ωστόσο, τα polyfills δεν παρέχουν το ίδιο επίπεδο ασφάλειας με την εγγενή υποστήριξη. Κυρίως βοηθούν στη συμβατότητα και σας επιτρέπουν να αρχίσετε να χρησιμοποιείτε το API ακόμη και αν ορισμένοι από τους χρήστες σας χρησιμοποιούν παλαιότερους φυλλομετρητές.
Εναλλακτικές Λύσεις και Παράγοντες προς Εξέταση
Ενώ οι Trusted Types προσφέρουν σημαντική ενίσχυση της ασφάλειας, είναι σημαντικό να αναγνωρίσουμε εναλλακτικές προσεγγίσεις και σενάρια όπου μπορεί να μην είναι η τέλεια λύση:
- Ενσωμάτωση σε Framework: Τα σύγχρονα frameworks JavaScript όπως τα React, Angular και Vue.js συχνά χειρίζονται το DOM με τρόπο που μετριάζει τους κινδύνους XSS. Αυτά τα frameworks συνήθως κάνουν escape των δεδομένων από προεπιλογή και ενθαρρύνουν τη χρήση ασφαλών προτύπων κωδικοποίησης. Ωστόσο, ακόμη και με τα frameworks, είναι ακόμα δυνατό να εισαχθούν ευπάθειες XSS εάν παρακάμψετε τις ενσωματωμένες προστασίες του framework ή χρησιμοποιήσετε λανθασμένα λειτουργίες όπως το dangerouslySetInnerHTML (React) ή παρόμοιες.
- Αυστηρή Επικύρωση Εισόδου και Κωδικοποίηση Εξόδου: Οι παραδοσιακές μέθοδοι επικύρωσης εισόδου και κωδικοποίησης εξόδου παραμένουν κρίσιμες. Οι Trusted Types συμπληρώνουν αυτές τις τεχνικές, δεν τις αντικαθιστούν. Η επικύρωση εισόδου διασφαλίζει ότι τα δεδομένα που εισέρχονται στην εφαρμογή σας είναι καλά σχηματισμένα και τηρούν τις αναμενόμενες μορφές. Η κωδικοποίηση εξόδου διασφαλίζει ότι τα δεδομένα γίνονται σωστά escape όταν εμφανίζονται στη σελίδα, εμποδίζοντας τους φυλλομετρητές να τα ερμηνεύσουν ως κώδικα.
- Επιβάρυνση στην Απόδοση: Αν και γενικά ελάχιστη, μπορεί να υπάρχει μια μικρή επιβάρυνση στην απόδοση που σχετίζεται με τις διαδικασίες απολύμανσης και επικύρωσης που απαιτούνται από τους Trusted Types. Είναι απαραίτητο να κάνετε profiling στην εφαρμογή σας για να εντοπίσετε τυχόν σημεία συμφόρησης στην απόδοση και να τα βελτιστοποιήσετε ανάλογα.
- Επιβάρυνση Συντήρησης: Η υλοποίηση και συντήρηση των Trusted Types απαιτεί μια στέρεη κατανόηση της δομής του DOM της εφαρμογής σας και της ροής δεδομένων. Η δημιουργία και η διαχείριση πολιτικών τύπων μπορεί να προσθέσει στην επιβάρυνση της συντήρησης.
Παραδείγματα από τον Πραγματικό Κόσμο και Μελέτες Περιπτώσεων
Αρκετοί οργανισμοί έχουν εφαρμόσει με επιτυχία τους Trusted Types για να βελτιώσουν την ασφάλεια των εφαρμογών web τους. Για παράδειγμα, η Google έχει χρησιμοποιήσει εκτενώς τους Trusted Types στα προϊόντα και τις υπηρεσίες της. Άλλες εταιρείες στους τομείς των οικονομικών και του ηλεκτρονικού εμπορίου, όπου η ασφάλεια είναι υψίστης σημασίας, υιοθετούν επίσης τους Trusted Types για την προστασία των ευαίσθητων δεδομένων των χρηστών και την πρόληψη οικονομικής απάτης. Αυτά τα παραδείγματα από τον πραγματικό κόσμο αποδεικνύουν την αποτελεσματικότητα των Trusted Types στον μετριασμό των κινδύνων XSS σε πολύπλοκα περιβάλλοντα με υψηλό διακύβευμα.
Συμπέρασμα
Το Trusted Types API αντιπροσωπεύει ένα σημαντικό βήμα προόδου στην ασφάλεια των εφαρμογών web, παρέχοντας έναν στιβαρό και φιλικό προς τον προγραμματιστή μηχανισμό για την πρόληψη επιθέσεων XSS. Επιβάλλοντας ασφαλείς πρακτικές χειρισμού του DOM και προωθώντας την προσεκτική απολύμανση και επικύρωση δεδομένων, οι Trusted Types δίνουν τη δυνατότητα στους προγραμματιστές να δημιουργούν ασφαλέστερες και πιο αξιόπιστες εφαρμογές web. Ενώ η υλοποίηση των Trusted Types απαιτεί προσεκτικό σχεδιασμό και εκτέλεση, τα οφέλη όσον αφορά την ενισχυμένη ασφάλεια και τη βελτιωμένη ποιότητα κώδικα αξίζουν τον κόπο. Καθώς η υποστήριξη των Trusted Types από τους φυλλομετρητές συνεχίζει να αυξάνεται, είναι πιθανό να γίνει ένα ολοένα και πιο σημαντικό εργαλείο στη μάχη κατά των ευπαθειών του web.
Ως παγκόσμιο κοινό, η υιοθέτηση βέλτιστων πρακτικών ασφαλείας όπως η χρήση των Trusted Types δεν αφορά μόνο την προστασία μεμονωμένων εφαρμογών, αλλά την προώθηση ενός ασφαλέστερου και πιο αξιόπιστου ιστού για όλους. Αυτό είναι ιδιαίτερα κρίσιμο σε έναν παγκοσμιοποιημένο κόσμο όπου τα δεδομένα ρέουν διασυνοριακά και οι παραβιάσεις ασφαλείας μπορούν να έχουν εκτεταμένες συνέπειες. Είτε είστε προγραμματιστής στο Τόκιο, επαγγελματίας ασφαλείας στο Λονδίνο ή ιδιοκτήτης επιχείρησης στο Σάο Πάολο, η κατανόηση και η εφαρμογή τεχνολογιών όπως οι Trusted Types είναι απαραίτητη για τη δημιουργία ενός ασφαλούς και ανθεκτικού ψηφιακού οικοσυστήματος.