Jeśli utworzę iframe
taki:
var dialog = $('<div id="' + dialogId + '" align="center"><iframe id="' + frameId + '" src="' + url + '" width="100%" frameborder="0" height="'+frameHeightForIe8+'" data-ssotoken="' + token + '"></iframe></div>').dialog({
Jak mogę naprawić błąd:
Odmówił wyświetlenia
'https://www.google.com.ua/?gws_rd=ssl'
w ramce, ponieważ ustawił „X-Frame-Options” na „SAMEORIGIN”.
z JavaScriptem?
javascript
jquery
x-frame-options
Darien Fawkes
źródło
źródło
X-Frame-Options
jest nagłówkiem zawartym w odpowiedzi na żądanie, aby stwierdzić, czy żądana domena pozwoli się wyświetlić w ramce. Nie ma to nic wspólnego z javascript lub HTML i nie może zostać zmienione przez osobę, która wysłała żądanie.Ta witryna ustawiła ten nagłówek, aby uniemożliwić wyświetlanie go w formacie
iframe
. Klient nie może nic zrobić, aby powstrzymać to zachowanie.Dalsze czytanie na temat opcji X-Frame
źródło
Jeśli kontrolujesz serwer, który wysyła zawartość elementu iframe, możesz ustawić to ustawienie na
X-Frame-Options
swoim serwerze internetowym.Konfigurowanie Apache
Aby wysłać nagłówek X-Frame-Options dla wszystkich stron, dodaj to do konfiguracji swojej witryny:
Konfigurowanie nginx
Aby skonfigurować nginx do wysyłania nagłówka X-Frame-Options, dodaj to do konfiguracji http, serwera lub lokalizacji:
Brak konfiguracji
Ta opcja nagłówka jest opcjonalna, więc jeśli opcja nie jest w ogóle ustawiona, dasz opcję skonfigurowania tego do następnej instancji (np. Przeglądarka odwiedzających lub proxy)
źródło: https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
źródło
add_header Strict-Transport-Security "max-age=86400; includeSubdomains"; add_header X-Frame-Options DENY;
z fragmentów nginx-snippetów, a potem od razu zadziałało.Ponieważ rozwiązanie nie było tak naprawdę wspomniane po stronie serwera:
Trzeba ustawić takie rzeczy (przykład z apache), nie jest to najlepsza opcja, bo na wszystko pozwala, ale gdy zobaczysz, że serwer działa poprawnie, możesz łatwo zmienić ustawienia.
źródło
nie bardzo ... użyłem
źródło
a jeśli nic nie pomaga i nadal chcesz prezentować tę witrynę w ramce iframe, rozważ użycie komponentu X Frame Bypass Component, który będzie wykorzystywał proxy.
źródło
X-Frame-Options HTTP nagłówek odpowiedzi może być używany do wskazania, czy dana przeglądarka powinna mieć prawo do renderowania strony w sposób
<frame>
,<iframe>
lub<object>
. Witryny mogą to wykorzystać, aby uniknąć ataków typu clickjacking, zapewniając, że ich zawartość nie jest osadzana w innych witrynach.Po więcej informacji: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
Mam alternatywne rozwiązanie tego problemu, które mam zamiar zademonstrować za pomocą PHP:
iframe.php:
target_url.php:
źródło
W tym celu musisz dopasować lokalizację w swoim Apache lub jakiejkolwiek innej usłudze, z której korzystasz
Jeśli używasz apache, to w pliku httpd.conf.
źródło
Rozwiązaniem jest instalacja wtyczki do przeglądarki.
Witryna internetowa, która wysyła nagłówek HTTP
X-Frame-Options
o wartościDENY
SAMEORIGIN
wysyła (lub z innym pochodzeniem serwera) nie może być zintegrowana z ramką IFRAME ... chyba że zmienisz to zachowanie, instalując wtyczkę przeglądarki, która ignorujeX-Frame-Options
nagłówek (np. Chrome's Ignore X-Frame Headers ).Zauważ, że nie jest to zalecane ze względów bezpieczeństwa.
źródło
możesz ustawić opcję x-frame-w konfiguracji internetowej witryny, którą chcesz załadować w ramce iframe, w ten sposób
źródło
Nie możesz tak naprawdę dodać elementu x-iframe w treści HTML, ponieważ musi być dostarczony przez właściciela witryny i podlega regułom serwera.
To, co prawdopodobnie możesz zrobić, to utworzyć plik PHP, który ładuje zawartość docelowego adresu URL i ramkę iframe tego adresu URL php, powinno to działać płynnie.
źródło
możesz to zrobić w pliku konfiguracyjnym instancji Tomcat (web.xml), musisz dodać „filtr” i mapowanie filtrów ”w pliku konfiguracyjnym web.xml. spowoduje to dodanie [X-frame-options = DENY] na całej stronie, ponieważ jest to ustawienie globalne.
źródło
Jeśli stosujesz podejście XML, poniższy kod będzie działał.
źródło