wake-up-neo.net

Erlauben, dass die Webseite innerhalb eines HTML-Frames gerendert wird

Ich habe zwei Webanwendungen: Webanwendung (Web-App) und Berichtsweb. Ich möchte Report Web in Web-App in einen <iframe> einbetten. Also lehnte es der Browser mit dem Fehler ab: 

X-Frame-Optionen: DENY

Irgendeine Hilfe?

14
haizpt

Der Wert der X-Frame-Optionen kann DENY (Standard), SAMEORIGIN und ALLOW-FROM uri .. sein. Laut der Spring Security-Dokumentation können Sie Spring das Standardverhalten überschreiben, indem Sie Ihren benutzerdefinierten Header auf diese Weise hinzufügen:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .headers()
            .addHeaderWriter(new XFrameOptionsHeaderWriter(new WhiteListedAllowFromStrategy(Arrays.asList("www.yourhostname.com"))))
    ...
}

und Spring wird X-Frame-Optionen anhängen: ALLOW-FROM ... oder

 .addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))

für X-Frame-Optionen: SAMEORIGIN oder vollständig durch deaktivieren

http.headers().frameOptions().disable()
17
medveshonok117

Wenn Sie Spring Security 4.x verwenden, löst die folgende Konfiguration Ihr Problem (vorausgesetzt, die Webanwendung wird auf derselben Serveradresse ausgeführt).

XML-Konfiguration :

<http>
    <!-- ... -->

    <headers>
        <frame-options policy="SAMEORIGIN" />
    </headers>
</http>

Java-Konfiguration :

@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        // ...
        .headers().frameOptions().sameOrigin();
    }
}

Konfiguration deaktivieren

Sie können es auch einfach deaktivieren, da Sie sich des Sicherheitsrisikos bewusst sind .

http.headers().frameOptions().disable();


Hintergrundinformationen

In Spring Security 3.2.0 wurden Sicherheitsheader eingeführt, die jedoch standardmäßig deaktiviert waren:
http://spring.io/blog/2013/08/23/spring-security-3-2-0-rc1-highlights-security-headers/

In Spring Security 4.x sind die Header standardmäßig aktiviert (für IFrames: X-Frame-Optionen: DENY): "Spring Security 4.x hat sowohl die Java Konfiguration als auch die XML-Konfiguration in geändert erfordern eine explizite Deaktivierung der Standardeinstellungen. "
http://docs.spring.io/spring-security/site/migrate/current/3-to-4/html5/migrate-3-to-4-jc.html#m3to4 -header

quelle: http://docs.spring.io/autorepo/docs/spring-security/4.0.x/reference/html/headers.html#headers-frame-options

7
flavio.donze

Sie können verwenden 

<headers>
  <frame-options policy="SAMEORIGIN"/>
</headers>

innerhalb Ihrer <http>-Konfiguration in Ihrem XML-Kontext der Sicherheitsanwendung

0
Tzvika Stein