用报头“验证HTTP请求”;起源”;


validate HTTP requests with header "origin"

  1. 我在中有一个REST APIhttps://domain1.com
  2. 我只想接受的请求https://domain2.com

问题,我是否可以依靠"origin"标头仅接受的请求https://domain2.com

请注意,这两个网站都使用SSL进行安全保护

它应该是这样的:

$headers = getallheaders();
if($headers['origin'] != 'https://domain2.com'){
    return FALSE;
}

依赖Origin标头类似于依赖Cookie。一个行为良好的客户端(如浏览器)会用正确的值发送它。攻击者只需将其伪造为使您的服务正常工作所需的任何值。

您可以使用它来防止某人直接从浏览器在其网站上使用您的API。您不能使用它来阻止某人通过代理使用您的API或直接访问它来下载数据。