it-swarm.com.de

Wie deaktiviere ich den Antwortheader "X-Frame-Options" in Spring Security?

Ich habe CKeditor auf meinem JSP und wenn ich etwas hochlade, wird der folgende Fehler angezeigt:

 Refused to display 'http://localhost:8080/xxx/xxx/upload-image?CKEditor=text&CKEditorFuncNum=1&langCode=ru' in a frame because it set 'X-Frame-Options' to 'DENY'.

Ich habe versucht, Spring Security zu entfernen, und alles funktioniert wie ein Zauber. Wie kann ich diese XML-Sicherheitsdatei im Frühjahr deaktivieren? Was soll ich schreiben zwischen <http> Stichworte

71
Bravo

Standardmäßig X-Frame-Options ist auf verweigert gesetzt, um Clickjacking Angriffe zu verhindern. Um dies zu überschreiben, können Sie Folgendes in Ihre Spring-Sicherheitskonfiguration einfügen

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

Hier stehen Optionen für Richtlinien zur Verfügung

  • [~ # ~] verweigern [~ # ~] - ist ein Standardwert. Mit dieser Option kann die Seite nicht in einem Frame angezeigt werden, unabhängig davon, welche Site dies versucht.
  • [~ # ~] sameorigin [~ # ~] - Ich gehe davon aus, dass dies das ist, wonach Sie suchen, damit die Seite sein wird (und sein kann) ) in einem Rahmen auf demselben Ursprung wie die Seite selbst angezeigt
  • ALLOW-FROM - Ermöglicht die Angabe eines Ursprungs, in dem die Seite in einem Rahmen angezeigt werden kann.

Weitere Informationen finden Sie unter hier .

Und hier um zu überprüfen, wie Sie die Header entweder mit XML oder Java configs) konfigurieren können.

Beachten Sie, dass Sie je nach Bedarf möglicherweise auch das entsprechende strategy angeben müssen.

100
vtor

Wenn Sie Java configs anstelle von XML configs verwenden, fügen Sie dies in Ihre WebSecurityConfigurerAdapter.configure(HttpSecurity http) -Methode ein:

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

Höchstwahrscheinlich möchten Sie diesen Header nicht vollständig deaktivieren, sondern verwenden SAMEORIGIN. Wenn Sie die Java Configs (Spring Boot) und möchte die X-Frame-Optionen zulassen: SAMEORIGIN, dann müssten Sie folgendes verwenden.


Für ältere Spring Security-Versionen:

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

Für neuere Versionen wie Spring Security 4.0.2 :

http
   .headers()
      .frameOptions()
         .sameOrigin();
47
kamwo

Wenn Sie eine XML-Konfiguration verwenden, können Sie diese verwenden

<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:security="http://www.springframework.org/schema/security"> 
<security:http>
    <security:headers>
         <security:frame-options disabled="true"></security:frame-options>
    </security:headers>
</security:http>
</beans>
16
Matthew Kirkley

Wenn Sie Spring Boot verwenden, können Sie die Standardheader von Spring Security am einfachsten deaktivieren, indem Sie die Eigenschaften security.headers.* Verwenden. Wenn Sie insbesondere den Standardheader X-Frame-Options Deaktivieren möchten, fügen Sie einfach Folgendes zu Ihrem application.properties Hinzu:

security.headers.frame=false

Es gibt auch die Eigenschaften security.headers.cache, security.headers.content-type, security.headers.hsts Und security.headers.xss, Die Sie verwenden können. Weitere Informationen finden Sie unter SecurityProperties .

9
Ali Dehghani

Wenn Sie die Java Konfiguration von Spring Security verwenden, werden standardmäßig alle Standard-Sicherheitsheader hinzugefügt. Sie können mithilfe der folgenden Java Konfiguration deaktiviert werden:

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends
   WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http
      .headers().disable()
      ...;
  }
}
6
FuSsA