情况:
我的网络应用中有一个页面被加载到Iframe中的多个(但有限的)第三方网站。
我的应用程序所服务的页面,提交表单(不太好,我知道)。现在,为了记录和分析目的,我需要知道请求源自哪个域。我启用了CORS和相关设置。
问题是当请求到达我的服务器时,Origin
标头包含我自己的域(即Iframe的域),而不是加载它的应用程序。
示例:
我的应用程序位于www.myapp.com
第三方应用程序位于www.thirdparty.com
第三方应用www.thirdparty.com/survey上的页面请求iframe中的www.myapp.com/survey?tp=1。
在表单提交时,我在服务器上获得的请求为Origin : www.myapp.com
,而我期待Origin : www.thirdparty.com
甚至引用标头都是referer : www.myapp.com
所以问题是,
1)这是预期的行为吗?我从https://wiki.mozilla.org/Security/Origin理解的是,在任何iframe请求中,Origin
标头将被发送到父窗口的标头,除非它具有多于1级的Iframe(在我的情况下不是)。
2)如果这不是预期的行为,我错过了什么?我哪里错了?
Stack:Java / Java EE,Spring MVC,Spring-Security,Tomcat,Apache。