संक्षिप्त उत्तर पहले से ही यहां दिया गया था: <div [innerHTML]="yourHtml">
बाध्यकारी का उपयोग करें ।
हालाँकि यहाँ वर्णित बाकी सलाह भ्रामक हो सकती हैं। जब आप उस तरह के गुणों से बंधते हैं तो कोणीय में एक अंतर्निहित सैनिटाइजिंग तंत्र होता है। चूंकि कोणीय एक समर्पित सैनिटाइज़िंग लाइब्रेरी नहीं है, इसलिए यह किसी भी जोखिम को नहीं लेने के लिए संदिग्ध सामग्री के प्रति अति उत्साही है। उदाहरण के लिए, यह खाली स्ट्रिंग में सभी एसवीजी सामग्री को साफ करता है।
आप DomSanitizer
सामग्री को bypassSecurityTrustXXX
विधियों के साथ सुरक्षित चिह्नित करने के लिए अपनी सामग्री को " सुरक्षित " करने के लिए सलाह सुन सकते हैं । ऐसा करने के लिए पाइप का उपयोग करने के सुझाव भी हैं और उस पाइप को अक्सर कहा जाता है safeHtml
।
यह सब भ्रामक है क्योंकि यह वास्तव में सैनिटाइज़िंग को दरकिनार करता है , न कि आपकी सामग्री को सैनिटाइज़ करने से। यह एक सुरक्षा चिंता का विषय हो सकता है क्योंकि यदि आप कभी भी उपयोगकर्ता द्वारा प्रदान की गई सामग्री या ऐसी किसी भी चीज़ के बारे में करते हैं जिसके बारे में आप निश्चित नहीं हैं - तो आप अपने आप को एक दुर्भावनापूर्ण कोड हमलों के लिए खोलते हैं।
यदि एंगुलर कुछ ऐसी चीज़ों को हटाता है जिनकी आपको इसके अंतर्निहित सैनिटाइजेशन की आवश्यकता होती है - तो आप इसे अक्षम करने के बजाय क्या कर सकते हैं यह वास्तविक सैनिटाइज़ेशन को एक समर्पित लाइब्रेरी को सौंपता है जो उस कार्य में अच्छा है। उदाहरण के लिए - DOMPurify।
मैंने इसके लिए एक रैपर लाइब्रेरी बनाई है ताकि इसे आसानी से कोणीय के साथ इस्तेमाल किया जा सके:
https://github.com/TinkoffCreditSystems/ng-dompurify
यह HTML को घोषित रूप से साफ करने के लिए एक पाइप भी है:
<div [innerHtml]="value | dompurify"></div>
यहां सुझाए गए पाइपों का अंतर यह है कि यह वास्तव में DOMPurify के माध्यम से स्वच्छता का काम करता है और इसलिए SVG के लिए काम करता है।
एक बात ध्यान में रखना है कि DOMPurify HTML / SVG को सैनिटाइज़ करने के लिए बहुत अच्छा है, लेकिन CSS नहीं। तो आप CSS को संभालने के लिए Angular के CSS sanitizer को प्रोवाइडर कर सकते हैं:
import {NgModule, ɵ_sanitizeStyle} from '@angular/core';
import {SANITIZE_STYLE} from '@tinkoff/ng-dompurify';
@NgModule({
// ...
providers: [
{
provide: SANITIZE_STYLE,
useValue: ɵ_sanitizeStyle,
},
],
// ...
})
export class AppModule {}
यह आंतरिक - हेंस ɵ
उपसर्ग है, लेकिन यह है कि कैसे कोणीय टीम अपने स्वयं के संकुल के साथ-साथ वैसे भी इसका उपयोग करती है। वह लाइब्रेरी एंगुलर यूनिवर्सल और सर्वर साइड रिडरिंग वातावरण के लिए भी काम करती है।