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
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
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.
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();
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();
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>
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
.
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()
...;
}
}