11

एक रूबी ऑन रेल्स 4 आवेदन में मैं पर काम कर रहा हूँ, मैं एक पृष्ठ है कि एक iframe foo.bar.com सर्वर पर होस्ट में खींच लिया हो जाएगा बनाने की जरूरत है, तो मैं इस नियंत्रक विधि है:रेल 4 नियंत्रक में "एक्स-फ़्रेम-विकल्प" के लिए एक से अधिक डोमेन को "अनुमति दें" कैसे करें?

def iframed_page 
    response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://foo.bar.com" 
end 

.. और अब यह पता चला है कि ग्राहक चाहता है कि मैं http://foo.dev.bar.com को श्वेतसूची भी दूं।

मुझे पता है कि एक्स-फ्रेम-विकल्प सेट करने के लिए, "ALLOW-FROM" विकल्प एकाधिक सबडोमेन की अनुमति नहीं देता है। लेकिन चूंकि यह एक ही रूट डोमेन है जो विभिन्न सबडोमेन के साथ है, क्या यह थोड़ा और अधिक लचीला होगा? उदाहरण के लिए, क्या मैं

response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://*.bar.com" 

जैसे कुछ भी कर सकता था?

+1

संभव डुप्लिकेट: // stackoverflow.com/questions/10205192/x-frame- विकल्प-allow-from-multiple-domains) – deefour

+1

मैंने उस प्रश्न को पढ़ा, बहुत बहुत धन्यवाद। यह रेल पर रूबी के बारे में कुछ भी नहीं बताता है, या यदि आपके पास समान रूट डोमेन के दो अलग-अलग सबडोमेन हैं तो क्या करना है। – drumwolf

+1

मैं तर्कसंगत होने की कोशिश नहीं कर रहा हूं जब मैं कहता हूं: आपका प्रश्न वास्तव में रेल-विशिष्ट नहीं है, और उपरोक्त प्रश्न/उत्तर 'सामग्री-सुरक्षा-नीति' का उपयोग करके वाइल्डकार्ड उपसर्ग पर जानकारी प्रदान करता है। भले ही, ऐसा लगता है कि 'एक्स-फ्रेम-विकल्प' सबसे आगे दिखने वाली पसंद नहीं हो सकती है। – deefour

उत्तर

11

आप इसके बजाय Content-Security-Policy शीर्षलेख का उपयोग कर सकते हैं, लेकिन यह doesn't work on everything है।

response.headers["X-Content-Security-Policy"] = "frame-ancestors http://*.bar.com"; 
response.headers["Content-Security-Policy"] = "frame-ancestors http://*.bar.com"; 
  • Content-Security-Policy आधुनिक ब्राउज़रों पर X-Frame-Options को पार कर जाएगी
  • X-Content-Security-Policy IE11 पर X-Frame-Options को पार कर जाएगी
[X फ़्रेम-विकल्पों की अनुमति दें-से एकाधिक डोमेन] (http के
+4

'फ्रेम-पूर्वजों' सीएसपी संस्करण 2 का हिस्सा है, जो इंटरनेट एक्सप्लोरर या एज में [वर्तमान में समर्थित नहीं है] (http://caniuse.com/#feat=contentsecuritypolicy2) है। – Sjoerd

+1

ध्यान दें कि फ्रेम-पूर्वजों फ़ायरफ़ॉक्स में प्राथमिकता नहीं लेते हैं, यह बग https://bugzilla.mozilla.org/show_bug.cgi?id=1024557 देखें और इसे ठीक करने का प्रयास करने के लिए इसे ऊपर उठाएं। – MicWit

+1

प्रति https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP: _ "कभी-कभी आपको एक्स-कंटेंट-सिक्योरिटी-पॉलिसी हेडर का उल्लेख दिखाई देगा, लेकिन यह एक पुराना संस्करण है और आप डॉन करते हैं इसे अब निर्दिष्ट करने की आवश्यकता नहीं है "_ – Madbreaks

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