我的嵌入式应用程序出现了一些问题。我在隐身模式(Chrome)下检查了应用程序,发现它没有加载任何页面。
我已经在我的django后端上用django-csp和中间件配置了CSP头(添加了来自网络选项卡的XHR部分的API调用的屏幕截图)。
技术栈
前端:React
后端:Django Inspection console打印此错误:
拒绝帧“”,因为祖先违反了以下内容安全策略指令:“frame-ancestors 'none'”。
我不能够弄清楚这个问题。如果需要,我可以提供更多信息。
class CSPMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
# Check if the request URL matches the desired prefix
if request.path.startswith('/endpoint'):
# Apply the CSP header for the desired URL prefix
response['Content-Security-Policy'] = "frame-ancestors https://shopify-dev.myshopify.com https://admin.shopify.com;"
return response
1条答案
按热度按时间nimxete21#
我假设你正试图在你的网站中嵌入一个来自
shopify-dev.myshopify.com
的网页。您收到CSP违规错误,因为
shopify-dev.myshopify.com
在其CSP响应标头中包含frame-ancestors 'none'
。由于frame-ancestors
directive用于指定哪个网页可以嵌入使用该指令的网页,因此frame-ancestors 'none'
有效地防止任何网站嵌入shopify-dev.myshopify.com
。因此,在您的网站上设置
frame-ancestors
指令不会对您的网站嵌入shopify-dev.myshopify.com
页面的能力产生任何影响。要解决这个问题,你需要重新设计你的应用,避免嵌入
shopify-dev.myshopify.com
。