Saya memiliki CKeditor di jsp saya dan setiap kali saya mengunggah sesuatu, kesalahan berikut muncul:
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'.
Saya telah mencoba menghapus Keamanan Musim Semi dan semuanya bekerja seperti pesona. Bagaimana saya bisa menonaktifkan ini di file xml keamanan musim semi? Apa yang harus saya tulis di antara <http>
tag
Jawaban:
Secara default
X-Frame-Options
diatur ke ditolak, untuk mencegah serangan clickjacking . Untuk mengesampingkan ini, Anda dapat menambahkan berikut ini ke dalam konfigurasi keamanan pegas Anda<http> <headers> <frame-options policy="SAMEORIGIN"/> </headers> </http>
Berikut adalah opsi yang tersedia untuk kebijakan
Untuk informasi lebih lanjut lihat di sini .
Dan di sini untuk memeriksa bagaimana Anda dapat mengkonfigurasi tajuk menggunakan konfigurasi XML atau Java.
Perhatikan, bahwa Anda mungkin juga perlu menentukan yang sesuai
strategy
, berdasarkan kebutuhan.sumber
http
danheaders
tag?http.headers().frameOptions().sameOrigin();
Jika Anda menggunakan konfigurasi Java dan bukan konfigurasi XML, masukkan ini ke dalam
WebSecurityConfigurerAdapter.configure(HttpSecurity http)
metode Anda :sumber
http.headers().frameOptions().sameOrigin();
Kemungkinan besar Anda tidak ingin menonaktifkan Header ini sepenuhnya, tetapi gunakan
SAMEORIGIN
. Jika Anda menggunakan Java Configs (Spring Boot
) dan ingin mengizinkan X-Frame-Options :SAMEORIGIN
, maka Anda perlu menggunakan yang berikut ini.Untuk versi Spring Security yang lebih lama:
http .headers() .addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))
Untuk versi yang lebih baru seperti Spring Security 4.0.2 :
sumber
Jika menggunakan konfigurasi XML Anda bisa menggunakan
<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>
sumber
Jika Anda menggunakan konfigurasi Java Spring Security, semua header keamanan default ditambahkan secara default. Mereka dapat dinonaktifkan menggunakan konfigurasi Java di bawah ini:
@EnableWebSecurity @Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .headers().disable() ...; } }
sumber
Jika Anda menggunakan Spring Boot, cara termudah untuk menonaktifkan header default Spring Security adalah dengan menggunakan
security.headers.*
properti. Khususnya, jika Anda ingin menonaktifkanX-Frame-Options
header default, cukup tambahkan berikut ini keapplication.properties
:security.headers.frame=false
Ada juga
security.headers.cache
,security.headers.content-type
,security.headers.hsts
dansecurity.headers.xss
sifat-sifat yang dapat Anda gunakan. Untuk informasi lebih lanjut, lihatSecurityProperties
.sumber