📅  最后修改于: 2023-12-03 15:21:51.729000             🧑  作者: Mango
跨域资源共享(CORS)标头用于在浏览器和服务器之间共享资源。在某些情况下,您可能需要限制CORS标头仅对您自己的域和子域可用。本文将介绍如何使用PHP设置仅针对您的域和子域使用CORS标头。
您可以使用以下代码设置CORS标头:
header('Access-Control-Allow-Origin: https://example.com');
此代码将在所有响应中添加Access-Control-Allow-Origin标头,表示响应可访问的域。在此示例中,我们只允许来自https://example.com域的请求。如果您想允许多个域,请使用逗号分隔它们。
若要仅允许来自子域的请求,请使用以下代码:
$origin = $_SERVER['HTTP_ORIGIN'];
if (preg_match('/^(https:\/\/([a-z0-9\-]+\.)?example\.com)$/i', $origin)) {
header('Access-Control-Allow-Origin: ' . $origin);
}
这将检查请求的来源是否是https://example.com或其子域。如果是,则添加Access-Control-Allow-Origin标头,否则跳过。这样,您可以确保只允许可信域的请求。
如果您想允许所有子域,可以使用以下代码:
$origin = $_SERVER['HTTP_ORIGIN'];
if (preg_match('/^https?:\/\/([a-z0-9\-]+\.)?example\.com$/i', $origin)) {
header('Access-Control-Allow-Origin: ' . $origin);
}
不像第二个例子,这个例子允许来自example.com的任何子域的请求。
这就是设置仅针对您的域和子域使用CORS标头的方法。请记住,CORS标头只是保护您的应用程序不受攻击的第一道防线。要确保应用程序的完整性和安全性,请正确配置服务器,验证所有传入的数据,并使用最佳安全实践。