我们有一些由第三方CMS服务托管的Javascript,我们在我们控制的服务器上有一些数据。当用户通过浏览器访问CMS(并执行我们的Javascript)时,我们希望向服务器发出跨域GET
请求,并让服务器使用正确的Access-Control-Allow-Origin
标头进行响应,以便浏览器接受响应。
当我们检查从CMS到我们服务器的请求时,请求的Origin
标头设置为null
。因此,我们无法为Access-Control-Allow-Origin
设置*
以外的值,以使浏览器接受响应。我们不确定为什么价值为null
。 JS正在我们无法完全控制的环境中执行。
我们假设Origin始终为null,并且我们无法改变它。我们可以提出的最佳解决方案是定义预共享秘密。当浏览器发出跨源请求时,它会添加带有秘密的自定义标头。服务器查找该标头,如果密钥匹配,则服务器添加响应标头Access-Control-Allow-Origin: *
。
有没有更好,更安全的方法来处理这种情况?
答案 0 :(得分:0)
您需要获取浏览器设置的请求Referer
标头的值,并将其用于响应Access-Control-Allow-Origin
标头值