2017-08-08 5 views
6

मैं html कोड के एपीआई श्रृंखलाएं जिनमें निम्नलिखित सेवाओं से वीडियो एम्बेडेड शामिल हो सकते हैं से हो रही है:कैसे जांचें कि iframes के साथ html सुरक्षित है या नहीं?

  • youtube.com,
  • vimeo.com,
  • dailymotion.com,
  • Prezi .com

अगर मैं यह काफी सुरक्षित मैं उन्हें भरोसा SafeHtml (कोणीय के प्रक्षालक बायपास करने के लिए) के लिए परिवर्तित कर सकते हैं है यकीन है:

this.safeHtml = this._sanitizer.bypassSecurityTrustHtml(this.htmlFromApi); 

और फिर इस तरह एक पृष्ठ पर रखे:

<div [innerHtml]="safeHtml"></div> 

सवाल:

  1. की जाँच करता है कौन सा मुझे यकीन है कि इस स्ट्रिंग काफी सुरक्षित है होना करने के लिए प्रदर्शन करने के लिए है? (इसमें एम्बेडेड स्क्रिप्ट शामिल नहीं हैं और इन चार साइटों में से किसी एक को बिना किसी मुश्किल रीडायरेक्शन के लीड करती है)?

  2. क्या इन साइटों को एंगुलर के सैनिटाइज़र के अपवादों में जोड़ने का अर्थ है? और हाँ कैसे करें अगर हाँ?

अग्रिम धन्यवाद!

पेज। मैंने यह वही प्रश्न देखा: How to check if string of HTML is safe? लेकिन मुझे उम्मीद है कि कोणीय सर्वोत्तम प्रथाओं के लिए कुछ और ताजा और प्रासंगिक है

+1

मेरी 2 सेंट। कुछ भी नहीं वास्तव में सुरक्षित है। मैं किसी भी स्रोत पर विश्वास नहीं होगा, लेकिन यह अपनी सुरक्षा जरूरतों/प्रतिबंध पर निर्भर करता है। –

उत्तर

2

जबकि कोणीय विशिष्ट उत्तर नहीं है; आप अपनी वेबसाइट पर Content Security Policy शीर्षलेख चाहते हैं, केवल सीरैन वेबसाइटों को (i) फ्रेम के माध्यम से एक्सेस करने की अनुमति दें।

उदाहरण:

Content-Security-Policy: 
     default-src 'self' https:; 
     script-src 'self' https:; 
     frame-src: https://*.youtube.com https://*.vimeo.com 
        https://*.dailymotion.com https://*.prezi.com; 

(हैडर स्पष्टता केवल पढ़ने के लिए बहु लाइन है)

यह सीएसपी अपनी वेबसाइट के लिए कुछ नियम तय करता है ताकि:

  • डिफ़ॉल्ट केवल अनुमति देता है वेबसाइट के संदर्भ ("स्वयं") और केवल https के माध्यम से।
  • स्क्रिप्ट केवल [सुरक्षित रूप से पहुँचा] किया जा सकता है फ़ाइलोंनहीं इनलाइन पटकथा, और इन फ़ाइलों एक ही वेबसाइट से बुलाया जाना चाहिए।
  • (i)frames वेबसाइट से केवल निर्दिष्ट डोमेन नाम ही कॉल कर सकते हैं। मैंने Https पता प्रकारों को यहां सबसे अच्छा अभ्यास के रूप में रखा है, और आपको यह भी ध्यान रखना होगा कि यह https://y2u.be जैसे प्लेसहोल्डर URL तक पहुंच से इंकार कर देगा, लेकिन आप इन बदलावों को अपनी आवश्यकता के अनुसार जोड़ सकते हैं।

ऊपर सीएसपी घोषणा वास्तव में क्या करता है आप अपने प्रश्न में की आवश्यकता होती है, और इसलिए अतीत safeHtml प्रक्षालक कुछ डोमेन फिल्टर करने के लिए अपनी जरूरत नजरअंदाज कर देता है।

सैनिटाइजर को अभी भी पारित होने की आवश्यकता होगी - किसी भी तरह - लेकिन मुझे कोणीय नहीं पता है, इसलिए उस विवरण का उत्तर नहीं दे सकता है।

Read more about the frame-src CSP directve

संपादित

अगर उन गैर-TLS कनेक्शन का उपयोग करने के लिए या फिर आपकी वेबसाइट सुरक्षित नहीं है टीएलएस, भी, छोटे URL के लिए एक उदाहरण सहित भी एक और अधिक लचीला उदाहरण:

Content-Security-Policy: 
     default-src 'self'; 
     script-src 'self'; 
     frame-src: https://*.youtube.com https://*.vimeo.com 
        https://*.dailymotion.com https://*.prezi.com 
        http://*.youtube.com http://*.vimeo.com 
        http://*.dailymotion.com http://*.prezi.com 
        https://youtu.be; 
+0

धन्यवाद @Martin! –

संबंधित मुद्दे