"एक्स-फ्रेम-ऑप्शंस द्वारा निषिद्ध प्रदर्शन" पर काबू पाना


419

मैं एक छोटा सा वेबपेज लिख रहा हूँ जिसका उद्देश्य कुछ अन्य पृष्ठों को फ्रेम करना है, बस उन्हें आसानी से देखने के लिए एकल ब्राउज़र विंडो में समेकित करना है। उन पृष्ठों में से कुछ जिन्हें मैं फंसाए जाने से मना कर रहा हूं और "एक्स-फ्रेम-ऑप्शंस द्वारा मना किए गए प्रदर्शन के कारण दस्तावेज़ प्रदर्शित करने से इनकार कर दिया" फेंकने की कोशिश कर रहा हूं। क्रोम में त्रुटि। मैं समझता हूं कि यह एक सुरक्षा सीमा है (अच्छे कारण के लिए), और इसे बदलने के लिए पहुंच नहीं है।

क्या किसी एकल विंडो के भीतर पृष्ठों को प्रदर्शित करने के लिए कोई वैकल्पिक फ़्रेमिंग या गैर-फ़्रेमिंग विधि है जो एक्स-फ़्रेम-विकल्प हेडर द्वारा ट्रिप नहीं की जाएगी?


117
यदि वे आपके पृष्ठ हैं, तो फ्रेम सीमक को हटा दें। अन्यथा, पृष्ठ के लेखक की इच्छाओं और उसके पहले का सम्मान न करें।
मार्क बी

यदि आप फेसबुक ऐप के लिए यह त्रुटि प्राप्त कर रहे हैं और AJAX कॉल का उपयोग कर रहे हैं, तो मैंने कहीं पढ़ा है कि फेसबुक वास्तव में # टैग का उपयोग करना पसंद करता है इसके लिए ajax संपर्क है इसलिए लिंक बदलने का प्रयास करें, मेरे लिए काम किया।
eric.itzhak

28
@MarcB क्रोम और फ़ायरफ़ॉक्स मूल रूप से यूआई क्रोम में गैर-स्वामित्व वाली वेबसाइटों को फ्रेम करते हैं। ये कार्यक्रम अपने मालिकों, एफडब्ल्यूआईडब्ल्यू के लिए समान मूल-मूल नीतियों की अनुमति देते हैं। जैसा कि ग्रेन-चेकली ने कहा, "मैं एक छोटा सा वेबपेज लिख रहा हूं जिसका उद्देश्य कुछ अन्य पृष्ठों को फ्रेम करना है, बस उन्हें आसानी से देखने के लिए एकल ब्राउज़र विंडो में समेकित करना है।" वह मूल रूप से वेब-ब्राउज़र का विस्तार कर रहा है और पूरी तरह से नैतिक होगा। बताया गया इरादा ब्राउज़र विंडो खोलने और व्यवस्थित करने के लिए बैश स्क्रिप्ट लिखने से अलग नहीं है।
शमूएल डेनियलसन

1
Surfly की जाँच करें । यह वही कर सकता है जिसकी आपको आवश्यकता है।
मूओदोव

1
@MarcB यह मददगार नहीं है। ओपी को लेखक की इच्छाओं की परवाह नहीं है।
flarn2006

जवाबों:


211

मेरे पास एक समान मुद्दा था, जहां मैं एक iframe में अपनी खुद की साइट से सामग्री प्रदर्शित करने की कोशिश कर रहा था (जैसे Colorbox के साथ एक लाइटबॉक्स-शैली संवाद ), और जहां हमारे पास एक सर्वर-वाइड "एक्स-फ्रेम-विकल्प SAMEORIGIN" हेडर था। स्रोत सर्वर इसे हमारे परीक्षण सर्वर पर लोड करने से रोक रहा है।

यह कहीं भी प्रलेखित नहीं लगता है, लेकिन यदि आप उन पेजों को संपादित कर सकते हैं जिन्हें आप iframe (उदाहरण के लिए, वे आपके अपने पृष्ठ हैं), तो बस एक और X- फ्रेम-ऑप्शन हैडर को किसी भी स्ट्रिंग के साथ सभी डिसएबल्स पर भेज सकते हैं। SAMEORIGIN या DENY आदेश।

जैसे। PHP के लिए, डाल

<?php
    header('X-Frame-Options: GOFORIT'); 
?>

आपके पृष्ठ के शीर्ष पर ब्राउज़र दोनों को मिलाएंगे, जिसके परिणामस्वरूप हेडर दिखाई देगा

X-Frame-Options SAMEORIGIN, GOFORIT

... और आपको iframe में पेज लोड करने की अनुमति देता है। यह तब काम करता है जब प्रारंभिक SAMEORIGIN कमांड सर्वर स्तर पर सेट किया गया था, और आप इसे पृष्ठ-दर-पृष्ठ मामले में ओवरराइड करना चाहते हैं।

शुभकामनाएं!


3
मेरे पास एक वेबसाइट के चारों ओर एक फ्रेम था। अपनी वेबसाइट पर, मैं OAUTH के लिए Instagram पर पुनर्निर्देशित कर रहा हूं। चूंकि इंस्टाग्राम भेजता X-Frame-Options: SAMEORIGINहै, फ्रेम के अंदर ऐसा करने का कोई तरीका नहीं है। आपको पॉपअप का उपयोग करना चाहिए।
स्टीव टाउबर

16
PHP के साथ संभवतः नए header_removeफ़ंक्शन का उपयोग करना बेहतर है , बशर्ते आपके पास यह उपलब्ध हो (> = 5.3.0)।
एक बिल्ली

11
या यदि आप संपूर्ण निर्देशिका से X- फ़्रेम-विकल्प निकालना चाहते हैं तो .htaccess को संपादित कर सकते हैं। बस लाइन जोड़ें:Header always unset X-Frame-Options
Jay

4
@cawecoy: हां, पूरा मुद्दा यह है कि यह अमान्य है। यह अमान्य हेडर और 'ओपनिंग फेल' की अनदेखी करने वाले ब्राउज़रों पर निर्भर करता है, जो अनिर्दिष्ट व्यवहार है और जिस पर भरोसा करने के लिए सुंदर है। GOFORIT(या अन्य यादृच्छिक मनमाने ढंग से अमान्य टोकन) एक सर्वर द्वारा लागू सुरक्षा उपाय को जानबूझकर तोड़ रहा है; यदि आपके पास स्वयं सर्वर का नियंत्रण है (जो आपको किसी वास्तविक सार्वजनिक सेवा के लिए करना चाहिए) तो सही काम बस सर्वर को पहली बार हेडर को सेट नहीं करना है।
10

31
यह Chrome में अब काम नहीं करता है। अमान्य मान मान को अस्वीकार कर देते हैं।
jamesfm

159

यदि आपको YouTube वीडियो के लिए यह त्रुटि मिल रही है, तो पूर्ण url का उपयोग करने के बजाय शेयर विकल्पों से एम्बेड url का उपयोग करें। ऐसा लगेगाhttp://www.youtube.com/embed/eCfDxZxTBW4

तुम भी जगह ले सकती watch?v=साथ embed/इसलिए http://www.youtube.com/watch?v=eCfDxZxTBW4हो जाता हैhttp://www.youtube.com/embed/eCfDxZxTBW4


14
ओह प्रगति ... काश, वे सिर्फ हमें फेंकने के लिए एक त्रुटि पैदा करने के बजाय एम्बेड पृष्ठ पर पुनर्निर्देशित कर देंगे, और मुझे अपनी स्क्रिप्ट को फिर से लिखने के लिए प्रेरित करेंगे!
joeytwiddle

122

यदि आपको Google मानचित्र को एक में एम्बेड करने का प्रयास करते समय यह त्रुटि हो रही है iframe, तो आपको &output=embedस्रोत लिंक में जोड़ना होगा।


120
यह केवल एक iframe में Google मानचित्र एम्बेड करने के लिए सच है, और एक सामान्य "समाधान" नहीं है।
बेंजामिन वोहलवेंड

17
मुझे एक लाइटबॉक्स में एक Google मानचित्र एम्बेड करने की आवश्यकता थी, इसलिए यह "समाधान" एकदम सही था
yitwail

5
यदि आप एक ट्विटर वेब इरादे के साथ ऐसा करने की कोशिश कर रहे हैं, तो इसके बारे में भूल जाओ। पूरे दिन बस अलग-अलग लाइटबॉक्स प्लगइन्स को आज़माते हुए केवल यह जानने की कोशिश करें कि "जब आप IFRAME और विजेट्स के भीतर इंटेंट्स के लिंक प्रदान कर सकते हैं, तो परिणामी पृष्ठों को IFRAME में लोड नहीं किया जा सकता है।" स्रोत: ट्विटर वेबसाइट
गुबट्रॉन

6
यदि आप जोड़ते हैं तो यह शेष पेज लोड होने के बाद भी iframe src को लोड करने की कोशिश कर रहा है तो काम नहीं करता है&output=embed
pathfinder

1
@pathfinder यह मेरे लिए तब काम आया जब पेज को लोड करने के बाद iframe src को लोड करने में मुझे परेशानी हुई
डेविड साइक्स

61

अद्यतन 2019: आप कर सकते हैं बाईपास X-Frame-Optionsएक में <iframe>उपयोग करते हुए सिर्फ क्लाइंट साइड जावास्क्रिप्ट और मेरे X- फ़्रेम-बाईपास वेब घटक। यहाँ एक डेमो है: हैकर न्यूज़ इनX-Frame-Bypass ए । (क्रोम और फ़ायरफ़ॉक्स में परीक्षण किया गया।)


3
यह एक दिलचस्प बदलाव है। एफएफ / क्रोम / ओपेरा में अच्छी तरह से काम करता है, लेकिन आईई / एज में काम नहीं करता है। जो कोई कुछ जानता है जो करेगा?
कलेक्टर

7
यह अब काम नहीं करता है। यह " फ्रेम में ' news.ycombinator.com ' प्रदर्शित करने से इनकार करता है क्योंकि यह ' DENY ' के लिए 'X- फ्रेम-ऑप्शंस' सेट करता है।" जैसा कि अपेक्षित है
g.pickardou

2
@ g.pickardou यह मेरे लिए Google Chrome 46 में काम करता है, मैं एक आइफ्रेम में हैकर समाचार देख सकता हूं।
niutech

1
@niutech, जो कि क्रोम 64 में पेज को फिर से लोड करने के बाद फिडल काम करता है, लेकिन पहली बार जब मैं पेज लोड करता हूं तो यह काम नहीं करता है। (गुप्त में कोशिश करें।)
कार्ल वॉल्श

1
धन्यवाद, यह कमाल है!
एंड्रयू गन्स

23

जोड़ना

  target='_top'

फेसबुक टैब में मेरे लिंक के लिए मेरे लिए मुद्दा तय ...


1
मैं इसी मुद्दे के साथ एक और iframe में निहित पेपैल iframe था। यह अब काम करता है! धन्यवाद
फैब्रिजियो Fortino

4
मैंने लक्ष्य = '_ शीर्ष' भी जोड़ा है, लेकिन इस समाधान के साथ समस्या यह है कि, लिंक अब फेसबुक कैनवास के बिना नए टैब में iframe के बाहर खुलता है।
sumitkanoje

23

Chrome के लिए एक प्लगइन है, जो उस हेडर प्रविष्टि (केवल निजी उपयोग के लिए) को छोड़ देता है:

https://chrome.google.com/webstore/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe/reviews


@aup यह शायद वेबपेज के हेडर भाग में कुछ संशोधन करता है।

विस्तार वेबपेज में कोई बदलाव नहीं कर रहा है, लेकिन लगता है कि यह ब्राउज़र स्तर में फ्रेम प्रतिक्रिया हेडर के सत्यापन को नजरअंदाज कर रहा है
विग्नेश अम्मासी

21

यदि आप Vimeo सामग्री को एम्बेड करने की कोशिश में यह त्रुटि प्राप्त कर रहे हैं, तो iframe के src को बदलें

: https://vimeo.com/63534746
से: http://player.vimeo.com/video/63534746


इससे मेरी समस्या हल हो गई, थैंक्यू। यूट्यूब वीडियो के साथ क्या करना है ??
हरेश

13

मैं एक ही मुद्दा था जब मैं iframe में मूड 2 एम्बेड की कोशिश की, समाधान है Site administration ► Security ► HTTP securityऔर जाँच करेंAllow frame embedding


अच्छी तरह से मूडल विधि के लिए किया जाता है, क्योंकि अन्य तरीके विफल हो जाते हैं / अधिलेखित हो जाते हैं।
एरिकोसग

7

ये है उपाय दोस्तों !!

FB.Event.subscribe('edge.create', function(response) {
    window.top.location.href = 'url';
});

केवल एक चीज जो फेसबुक ऐप के लिए काम करती है!


6

ऐसा प्रतीत होता है कि X- फ्रेम-ऑप्शंस Allow-From https: // ... मूल्यह्रास किया गया है और यदि आप इसके बजाय कंटेंट-सिक्योरिटी-पॉलिसी हेडर का उपयोग करते हैं तो इसे बदल दिया गया (और अनदेखा कर दिया गया) ।

यहां देखें पूरा संदर्भ: https://content-security-policy.com/


6

एक बाहरी वेबसाइट को एक iFrame में लोड करने के लिए समाधान एक्स-फ्रेम विकल्प भी बाहरी वेबसाइट पर अस्वीकार करने के लिए सेट है।

यदि आप किसी अन्य वेबसाइट को iFrame में लोड करना चाहते हैं और आपको मिल जाता है Display forbidden by X-Frame-Options” त्रुटि तो आप वास्तव में सर्वर साइड प्रॉक्सी स्क्रिप्ट बनाकर इसे दूर कर सकते हैं।

srcIFrame विशेषता इस तरह दिखने वाला एक url हो सकता है:/proxy.php?url=https://www.example.com/page&key=somekey

तब प्रॉक्सी.फपी कुछ इस तरह दिखेगा:

if (isValidRequest()) {
   echo file_get_contents($_GET['url']);
}

function isValidRequest() {
    return $_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['key']) && 
    $_GET['key'] === 'somekey';
}

यह ब्लॉक से होकर गुजरता है, क्योंकि यह केवल एक GET अनुरोध है जो स्वागत योग्य हो सकता है जो कि एक सामान्य ब्राउज़र पेज विजिट हो सकता है।

जागरूक रहें: आप इस स्क्रिप्ट में सुरक्षा को बेहतर बनाना चाहते हैं। क्योंकि हैकर्स आपकी प्रॉक्सी स्क्रिप्ट के माध्यम से वेबपेजों में लोड करना शुरू कर सकते हैं।


मैं यह कुछ हफ़्ते पहले कर रहा था और किसी भी बाहरी यूआरएल में इस्तेमाल किए गए रिश्तेदार यूआरएल गूंज का उपयोग करते समय काम नहीं करते हैं। (आमतौर पर CSS और / या JS, ताकि आप पूर्ण कार्यक्षमता न प्राप्त कर सकें, जब तक कि आप गूंजने से पहले URL संशोधित न कर लें।) जब तक मैंने कुछ याद नहीं किया है ...
ultrageek

यकीन नहीं होता कि आपके लिए ऐसा क्यों होता है ... यह एक सामान्य HTTP अनुरोध की तरह काम करना चाहिए, ठीक उसी तरह जैसे कि एंड-यूज़र URL पर जाकर करते हैं। तो get_file_contents () का परिणाम पूरी तरह से काम करने वाला HTML पृष्ठ होना चाहिए।
फ्लोरिस

5

मैंने लगभग सभी सुझावों की कोशिश की। हालाँकि, केवल एक चीज जो वास्तव में इस मुद्दे को हल करती है:

  1. .htaccessउसी फ़ोल्डर में बनाएँ जहाँ आपकी PHP फ़ाइल निहित है।

  2. इस लाइन को htaccess में जोड़ें:

    Header always unset X-Frame-Options

किसी अन्य डोमेन से iframe द्वारा PHP को एम्बेड करना बाद में काम करना चाहिए।

इसके अतिरिक्त आप अपनी PHP फ़ाइल की शुरुआत में जोड़ सकते हैं:

header('X-Frame-Options: ALLOW');

हालांकि, मेरे मामले में आवश्यक नहीं था।


Htaccess में हमेशा हैडर ने एक्स-फ्रेम-ऑप्शंस को
परेशान किया

4

मुझे मीडियाविकी के साथ भी यही समस्या थी, यह इसलिए था क्योंकि सर्वर ने सुरक्षा कारणों से पेज को आईफ्रेम में एम्बेड करने से इनकार किया था।

मैंने इसे लिखकर हल किया

$wgEditPageFrameOptions = "SAMEORIGIN"; 

Mediawiki php config फाइल में।

आशा है ये मदद करेगा।


3

FWIW:

हमारे पास एक ऐसी स्थिति थी जहां हमें अपने iFrame"को तोड़ने वाला" कोड दिखाने पर मारने की जरूरत थी । इसलिए, मैंने function get_headers($url);दूरस्थ URL को एक में दिखाने से पहले जांचने के लिए PHP का उपयोग किया iFrame। बेहतर प्रदर्शन के लिए, मैंने परिणामों को एक फ़ाइल में कैश्ड किया, इसलिए मैं हर बार HTTP कनेक्शन नहीं बना रहा था।


3

मैं Tomcat 8.0.30 का उपयोग कर रहा था, किसी भी सुझाव ने मेरे लिए काम नहीं किया। जैसा कि हम X-Frame-Optionsइसे अद्यतन करने और इसे सेट करने के लिए देख रहे हैं ALLOW, यहाँ बताया गया है कि कैसे मैंने iframes एम्बेड करने की अनुमति देने के लिए कॉन्फ़िगर किया है:

  • Tomcat conf निर्देशिका पर नेविगेट करें, web.xml फ़ाइल संपादित करें
  • नीचे दिए गए फ़िल्टर जोड़ें:
<filter>
            <filter-name>httpHeaderSecurity</filter-name>
            <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
                   <init-param>
                           <param-name>hstsEnabled</param-name>
                           <param-value>true</param-value>
                   </init-param>
                   <init-param>
                           <param-name>antiClickJackingEnabled</param-name>
                           <param-value>true</param-value>
                   </init-param>
                   <init-param>
                           <param-name>antiClickJackingOption</param-name>
                           <param-value>ALLOW-FROM</param-value>
                   </init-param>
            <async-supported>true</async-supported>
       </filter>

       <filter-mapping>
                   <filter-name>httpHeaderSecurity</filter-name>
                   <url-pattern>/*</url-pattern>
                   <dispatcher>REQUEST</dispatcher>
       </filter-mapping> 
  • Tomcat सेवा को पुनरारंभ करें
  • एक iFrame का उपयोग कर संसाधनों तक पहुँचें।

2

एकमात्र प्रश्न जिसमें उत्तर का एक गुच्छा है। गाइड मैं चाहता था जब मैं चाहता था जब मैं इस के लिए यह समय सीमा पर रात में 10:30 पर काम करने के लिए पांव मार रहा था ... FB कैनवास एप्लिकेशन के साथ कुछ अजीब चीजें करता है, और अच्छी तरह से, आपको चेतावनी दी गई है। यदि आप अभी भी यहाँ हैं और आपके पास एक रेल्स ऐप है जो फेसबुक कैनवस के पीछे दिखाई देगा, तो आपको इसकी आवश्यकता होगी:

Gemfile:

gem "rack-facebook-signed-request", :git => 'git://github.com/cmer/rack-facebook-signed-request.git'

config / facebook.yml

facebook:
  key: "123123123123"
  secret: "123123123123123123secret12312"

config / application.rb

config.middleware.use Rack::Facebook::SignedRequest, app_id: "123123123123", secret: "123123123123123123secret12312", inject_facebook: false

config / initializers / omniauth.rb

OmniAuth.config.logger = Rails.logger
SERVICES = YAML.load(File.open("#{::Rails.root}/config/oauth.yml").read)
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, SERVICES['facebook']['key'], SERVICES['facebook']['secret'], iframe:   true
end

application_controller.rb

before_filter :add_xframe
def add_xframe
  headers['X-Frame-Options'] = 'GOFORIT'
end

आपको फेसबुक की कैनवास सेटिंग्स से कॉल करने के लिए एक नियंत्रक की आवश्यकता है, मैंने इस ऐप के लिए /canvas/मार्ग का उपयोग किया और मुख्य बनाया SiteController:


class SiteController < ApplicationController
  def index
    @user = User.new
  end
  def canvas
    redirect_to '/auth/failure' if request.params['error'] == 'access_denied'
    url = params['code'] ? "/auth/facebook?signed_request=#{params['signed_request']}&state=canvas" : "/login"
    redirect_to url
  end
  def login
  end
end

login.html.erb


<% content_for :javascript do %>
  var oauth_url = 'https://www.facebook.com/dialog/oauth/';
  oauth_url += '?client_id=471466299609256';
  oauth_url += '&redirect_uri=' + encodeURIComponent('https://apps.facebook.com/wellbeingtracker/');
  oauth_url += '&scope=email,status_update,publish_stream';
console.log(oauth_url);
  top.location.href = oauth_url;
<% end %>

सूत्रों का कहना है

  • मुझे लगता है कि विन्यास omniauth के उदाहरण से आया है।
  • मणि फ़ाइल (जो कुंजी है !!!) से आई: स्लाइडशेयर चीजें जो मैंने सीखीं ...
  • इस स्टैक प्रश्न में संपूर्ण Xframe कोण था, इसलिए आपको एक खाली स्थान मिलेगा, यदि आप इस हेडर को ऐप कंट्रोलर में नहीं रखते हैं।
  • और मेरे आदमी @rafmagana ने इस heroku गाइड को लिखा था , जिसे अब आप इस उत्तर और दिग्गजों के कंधों के साथ रेल के लिए अपना सकते हैं जिसमें आप साथ चलते हैं।

2

लक्ष्य = '_ माता-पिता'

केविन वेला के विचार का उपयोग करते हुए, मैंने उस विशेषता को पेपल के बटन जनरेटर द्वारा बनाए गए तत्वों को जोड़ने की कोशिश की। मेरे लिए काम किया ताकि पेपाल नई ब्राउज़र विंडो / टैब में न खुले।


दुर्भाग्य से यह सफारी के लिए भी काम नहीं करता है।
बुनकर

1

मुझे यकीन नहीं है कि यह कितना प्रासंगिक है, लेकिन मैंने इसके लिए एक काम बनाया। मेरी साइट पर, मैं एक मोडल विंडो में लिंक प्रदर्शित करना चाहता था जिसमें एक iframe था जो URL को लोड करता है।

मैंने क्या किया है, मैंने इस जावास्क्रिप्ट फ़ंक्शन के लिंक के क्लिक इवेंट को लिंक किया है। यह सब एक PHP फ़ाइल के लिए एक अनुरोध करता है, जो यह तय करने से पहले एक्स-फ्रेम-ऑप्शंस के लिए यूआरएल हेडर की जांच करता है कि क्या यूआरएल विंडो के भीतर लोड करना है या रीडायरेक्ट करना है।

यहाँ समारोह है:

  function opentheater(link, title){
        $.get( "url_origin_helper.php?url="+encodeURIComponent(link), function( data ) {
  if(data == "ya"){
      $(".modal-title").html("<h3 style='color:480060;'>"+title+"&nbsp;&nbsp;&nbsp;<small>"+link+"</small></h3>");
        $("#linkcontent").attr("src", link);
        $("#myModal").modal("show");
  }
  else{
      window.location.href = link;
      //alert(data);
  }
});


        }

यहाँ PHP फ़ाइल कोड है जो इसके लिए जाँच करता है:

<?php
$url = rawurldecode($_REQUEST['url']);
$header = get_headers($url, 1);
if(array_key_exists("X-Frame-Options", $header)){
    echo "nein";
}
else{
    echo "ya";
}


?>

उम्मीद है की यह मदद करेगा।


1

मैं इस मुद्दे पर आया जब एक वर्डप्रेस वेब साइट चला रहा था। मैंने इसे ठीक करने के लिए सभी प्रकार की चीजों की कोशिश की और यह सुनिश्चित नहीं किया कि कैसे, अंततः मुद्दा यह था क्योंकि मैं डीएनएस अग्रेषण को मास्किंग के साथ उपयोग कर रहा था, और बाहरी साइटों के लिंक ठीक से संबोधित नहीं किए जा रहे थे। यानी मेरी साइट को http: //123.456.789/index.html पर होस्ट किया गया था, लेकिन http://somewebSite.com/index.html पर चलाने के लिए मास्क लगाया गया था । जब मैंने http: //123.456.789/index.html ब्राउज़र में प्रवेश किया , तो उन्हीं लिंक पर क्लिक करने से जेएस कंसोल में कोई एक्स-फ्रेम- ऑरिजिंस समस्या नहीं हुई, लेकिन http://somewebSite.com/index.html चल रहा हैकिया। ठीक से मास्क करने के लिए आपको अपने होस्ट के DNS नाम सर्वरों को अपनी डोमेन सेवा में जोड़ना होगा, अर्थात godaddy.com में नाम सर्वरों का नाम होना चाहिए, ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com, यदि आप थे अपने होस्टिंग सेवा के रूप में digitalocean.com का उपयोग कर।


1
मैंने यह करना समाप्त कर दिया: remove_action( 'admin_init', 'send_frame_options_header',10);इस समस्या को बायपास करने के लिए ...
माजिक

1

यह आश्चर्य की बात है कि यहां किसी ने भी Apacheसर्वर की सेटिंग्स ( *.confफाइलों) का उल्लेख नहीं किया है या .htaccessइस त्रुटि का कारण होने के रूप में खुद को फाइल करता है। अपनी .htaccessया Apacheकॉन्फ़िगरेशन फ़ाइलों के माध्यम से खोजें , सुनिश्चित करें कि आपके पास निम्नलिखित सेट नहीं है DENY:

Header always set X-Frame-Options DENY

इसे बदलने से SAMEORIGINअपेक्षा के अनुरूप काम होता है:

Header always set X-Frame-Options SAMEORIGIN


यह पहले उल्लेख किया गया था - उत्तर पर @Jay से टिप्पणी देखें stackoverflow.com/a/6767901/1875965
सैंड्रा

I config .conf फ़ाइल हैडर हमेशा X- फ्रेम-विकल्प SAMEORIGIN सेट करता है!
गीकहेड्स

लेकिन यहाँ यह सवाल कैसे प्रासंगिक है, जहां हेडर विदेशी सर्वरों से आता है, सीधे क्लाइंट के लिए , IOW आपका अपना सर्वर भी शामिल नहीं है? क्या मैं कुछ भूल रहा हूँ?
एस.जे.

1

एकमात्र वास्तविक उत्तर, यदि आप अपने स्रोत पर हेडर को नियंत्रित नहीं करते हैं जिसे आप अपने आइफ्रेम में चाहते हैं, तो उसे प्रॉक्सी करना है। सर्वर के पास एक ग्राहक के रूप में कार्य करें, स्रोत प्राप्त करें, समस्याग्रस्त हेडर को पट्टी करें, यदि आवश्यक हो तो कॉर्स जोड़ें, और फिर अपने स्वयं के सर्वर को पिंग करें।

इस तरह के एक प्रॉक्सी लिखने के लिए एक और जवाब है। यह मुश्किल नहीं है, लेकिन मुझे यकीन था कि किसी ने पहले ऐसा किया होगा। किसी कारण के लिए इसे ढूंढना मुश्किल था।

मुझे आखिरकार कुछ स्रोत मिले:

https://github.com/Rob--W/cors-anywhere/#documentation

^ पसंद किया गया। यदि आपको दुर्लभ उपयोग की आवश्यकता है, तो मुझे लगता है कि आप उसके हरोकू ऐप का उपयोग कर सकते हैं। अन्यथा, इसे अपने सर्वर पर स्वयं चलाने के लिए कोड है। ध्यान दें कि सीमाएं क्या हैं।

whateverorigin.org

^ दूसरी पसंद, लेकिन काफी पुरानी। माना जाता है कि अजगर में नई पसंद: https://github.com/Eiledon/alloworigin

फिर तीसरी पसंद है:

http://anyorigin.com/

जो थोड़ा मुक्त उपयोग करने की अनुमति देता है, लेकिन आपको सार्वजनिक शर्म की सूची में डाल देगा यदि आप भुगतान नहीं करते हैं और कुछ अनिर्दिष्ट राशि का उपयोग करते हैं, जिसे आप केवल तभी निकाल सकते हैं यदि आप शुल्क का भुगतान करते हैं ...


0

उल्लेख नहीं है लेकिन कुछ उदाहरणों में मदद कर सकते हैं:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState !== 4) return;
    if (xhr.status === 200) {
        var doc = iframe.contentWindow.document;
        doc.open();
        doc.write(xhr.responseText);
        doc.close();
    }
}
xhr.open('GET', url, true);
xhr.send(null);

0

header()फ़ंक्शन के बजाय नीचे दी गई इस लाइन का उपयोग करें ।

echo "<script>window.top.location = 'https://apps.facebook.com/yourappnamespace/';</script>";

0

मुझे यह समस्या थी, और इसे httd.conf के संपादन में हल किया

<IfModule headers_module>
    <IfVersion >= 2.4.7 >
        Header always setifempty X-Frame-Options GOFORIT
    </IfVersion>
    <IfVersion < 2.4.7 >
        Header always merge X-Frame-Options GOFORIT
    </IfVersion>
</IfModule>

मैंने SAMEORIGIN को GOFORIT में बदल दिया और सर्वर को पुनः आरंभ किया


-1

इस बात की कोशिश करो, मुझे नहीं लगता कि किसी ने भी इस विषय में सुझाव दिया है, यह आपके मुद्दे के 70% की तरह हल करेगा, कुछ अन्य पृष्ठों के लिए, आपको स्क्रैप करना होगा, मेरे पास पूर्ण समाधान है, लेकिन जनता के लिए नहीं,

अपने iframe के नीचे ADD करें

सैंडबॉक्स = "समान-मूल-अनुमति अनुमति-स्क्रिप्ट अनुमति-पॉपअप अनुमति-फ़ॉर्म"


1
सैंडबॉक्सिंग विशेषाधिकारों को कम कर देता है, यह उन्हें जोड़ता नहीं है। देख html5rocks.com/en/tutorials/security/sandboxed-iframes
केली बेकर

-1

संपादित करें। यदि आप X- फ्रेम-ऑप्शंस को पूरी निर्देशिका से हटाना चाहते हैं।

और लाइन जोड़ें: हेडर हमेशा एक्स-फ्रेम-ऑप्शंस को परेशान करता है

[सामग्री: "एक्स-फ्रेम-ऑप्शंस द्वारा निषिद्ध प्रदर्शन" पर काबू पाना

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.