所以我有这个私有和公共api的REST API。所以在代码中,我允许并拒绝每个API的请求。我使用这段代码:PHP Programmaticaly允许/拒绝域
public function allowDomain($domain) {
header('Access-Control-Allow-Origin: ' . $domain);
}
现在经过一番研究,我也不太清楚,如果这是这样做(因为欺骗)的安全方法。这是正确的事情还是有更多的东西?如果是这样的话?
所以我有这个私有和公共api的REST API。所以在代码中,我允许并拒绝每个API的请求。我使用这段代码:PHP Programmaticaly允许/拒绝域
public function allowDomain($domain) {
header('Access-Control-Allow-Origin: ' . $domain);
}
现在经过一番研究,我也不太清楚,如果这是这样做(因为欺骗)的安全方法。这是正确的事情还是有更多的东西?如果是这样的话?
要真正保护您的API(私人部分),您应该使用密钥或令牌。 Access-Control-Allow-Origin
只在客户端,所以Javscript不会因为安全原因而不要求API。您仍然可以在浏览器或其他地方访问此API。
请参见:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
但是私人JavaScript(来自同一个域)将如何访问它? – 2014-10-07 12:55:46
只需为每个GET添加一个密钥:/local/api.php?key=254236234523452345并在您的API中检查if'($ _ GET [“key”] == 254236234523452345)' – Matthias 2014-10-07 12:57:22
你们是不是要拒绝来自其他(不受信任的)域访问客户端的JavaScript的网页上运行,或拒绝访问完全不受信任的域? – Quentin 2014-10-07 12:47:04
@Quentin我需要拒绝它的JavaScript访问和来自不受信任的域的所有其他请求。 – 2014-10-07 12:48:32
@ f.lorenzo - 那么你需要使用基于密码的认证,而不是提供公共的JS访问。 – Quentin 2014-10-07 12:53:15