Angular CSP阻止来自S3的图像
我有一个客户端,它将一个图像上传到服务器,然后,服务器将该图像上传到S3,等待URL,然后返回该图像的URL 问题在于,由于某种原因,客户端拒绝加载服务器提供的映像 在控制台中,这是我收到的消息(出于隐私原因删除了实际URL): 拒绝加载图像“URL”,因为它违反了以下内容安全策略指令:“img src‘self’data:” 上载的图像具有所有读取权限,因此任何人都可以读取url HTML中的CSP如下所示:Angular CSP阻止来自S3的图像,angular,amazon-web-services,amazon-s3,Angular,Amazon Web Services,Amazon S3,我有一个客户端,它将一个图像上传到服务器,然后,服务器将该图像上传到S3,等待URL,然后返回该图像的URL 问题在于,由于某种原因,客户端拒绝加载服务器提供的映像 在控制台中,这是我收到的消息(出于隐私原因删除了实际URL): 拒绝加载图像“URL”,因为它违反了以下内容安全策略指令:“img src‘self’data:” 上载的图像具有所有读取权限,因此任何人都可以读取url HTML中的CSP如下所示: 我必须说,我正在向客户端传递由amazon创建的URL。例如: https://m
我必须说,我正在向客户端传递由amazon创建的URL。例如:
https://mybucket.s3.us-west-2.amazonaws.com/ecc6898f-56b1-4ad1-bb73-3b5c9749d264.jpeg
当指令中有其他条目时,通配符似乎被忽略
所以试试这个:
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src https 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *">
当指令中有其他条目时,通配符似乎被忽略 所以试试这个:
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src https 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *">
这是固定的
这个angular应用程序运行在一个服务器上,该服务器也运行一个带有SpringSecurity的JavaSpringBoot
Spring security有一个配置函数,可以覆盖服务器的HTTP行为(出于安全原因,从示例中删除了URI):
@Override
public void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.csrf()
.disable()
.addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter.class)
.exceptionHandling()
.authenticationEntryPoint(problemSupport)
.accessDeniedHandler(problemSupport)
.and()
.headers()
.contentSecurityPolicy("default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src * 'self' data:; font-src 'self' data:")
.and()
.referrerPolicy(ReferrerPolicyHeaderWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN)
.and()
.featurePolicy("geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; speaker 'none'; fullscreen 'self'; payment 'none'")
.and()
.frameOptions()
.deny()
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/api/endpoint").permitAll()
.apply(securityConfigurerAdapter());
// @formatter:on
}
这是固定的
这个angular应用程序运行在一个服务器上,该服务器也运行一个带有SpringSecurity的JavaSpringBoot
Spring security有一个配置函数,可以覆盖服务器的HTTP行为(出于安全原因,从示例中删除了URI):
@Override
public void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.csrf()
.disable()
.addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter.class)
.exceptionHandling()
.authenticationEntryPoint(problemSupport)
.accessDeniedHandler(problemSupport)
.and()
.headers()
.contentSecurityPolicy("default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src * 'self' data:; font-src 'self' data:")
.and()
.referrerPolicy(ReferrerPolicyHeaderWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN)
.and()
.featurePolicy("geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; speaker 'none'; fullscreen 'self'; payment 'none'")
.and()
.frameOptions()
.deny()
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/api/endpoint").permitAll()
.apply(securityConfigurerAdapter());
// @formatter:on
}
不起作用,仍然具有完全相同的行为。这一点仍然相同吗?…因为它违反了以下内容安全策略指令:“img src‘self’data:“是的,我把它修好了。是Spring Security搞乱了,覆盖了CSP。谢谢你的帮助!没问题。一切都很好,结果很好。没有工作,仍然有完全相同的行为。这一点还是一样的吗?”…因为它违反了以下内容安全策略指令:“img src‘self’data:“是的,我把它修好了。这是春季安全混乱,凌驾于CSP之上。谢谢你的帮助!没问题。一切都好,结局都好。”。