内容安全策略标头问题

时间:2021-03-13 10:33:01

标签: angular payment-gateway

我们有一个电子商务网站,从那里我们重定向到支付网关门户,交易完成后,支付网关门户重定向回我们的电子商务网站,其中包含响应表单数据,在点击我们的响应页面后,我们内容安全策略出现 404 错误阻止重定向,请找到我附上的屏幕截图。 我们的网站是使用 angular 11 开发的,并且我们使用 ssr 进行 seo 优化。

Error

2 个答案:

答案 0 :(得分:0)

这是CSP的通病,应该是后端修复的,不知道你用的是哪个框架,如果是Spring Boot with Java,那我会是这样的:

@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.and()
            .headers()
            .contentSecurityPolicy("default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' https://fonts.googleapis.com 'unsafe-inline'; img-src 'self' data:; font-src 'self' https://fonts.gstatic.com data:");
    }
}

答案 1 :(得分:0)

内容安全政策无法阻止源自支付网关的重定向。

您看到的问题是您的应用程序没有处理对 http://beta.samidirect.com/homePOST 请求。相反,您的应用程序提供 404 错误,并使用默认 404 页面进行回复,其中包含被 CSR 阻止的内联样式。据推测,您的 Angular 应用程序没有使用内联样式,这就是为什么您不会在使用 Angular 处理的页面上看到此错误的原因。你需要解决404问题而不是CSR问题。

您需要实现一个服务器应用程序,该应用程序可以处理 POST 请求,验证交易是否合法,验证交易是否以正确的金额处理,然后重定向到 GET {{3 }}。这个问题不能完全用 Angular 11 解决,你必须创建一个后端组件。