假设我的主要java Web应用程序在机器上运行; http://192.168.0.1:8080/mainapp
其他两个应用程序正在构建我的主要应用程序
假设其他两个应用程序正在其他机器上运行,如
http://192.168.0.21/TrustedOne和http://192.168.0.31/TrustedTwo
这两个应用程序框架就像
<html>
<body>
<iframe src="http://192.168.0.1:8080/mainapp" width="200" height="200">
</iframe>
</body>
</html>
我想仅允许http://192.168.0.21/TrustedOne和http://192.168.0.31/TrustedTwo的框架。 所以我将Content-Security-Policy标头放在我主java应用程序的过滤器类中。
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
response.addHeader("Content-Security-Policy", "frame-ancestors http://192.168.0.21/TrustedOne http://192.168.0.31/TrustedTwo");
chain.doFilter(request, response);
}
我期待的结果是这两个框架应用程序应该可以访问iframe中的主应用程序。
但是这两个框架应用程序都无法在所有浏览器中访问http://192.168.0.1:8080/mainapp; Chrome,Firefox和IE。
所有浏览器都阻止了我的主应用http://192.168.0.1:8080/mainapp
我对内容安全政策的框架祖先的看法是否有问题?