📜  仅针对我们的域和子域使用 php 跨域标头 - PHP (1)

📅  最后修改于: 2023-12-03 15:21:51.729000             🧑  作者: Mango

仅针对我们的域和子域使用 PHP 跨域标头 - PHP

跨域资源共享(CORS)标头用于在浏览器和服务器之间共享资源。在某些情况下,您可能需要限制CORS标头仅对您自己的域和子域可用。本文将介绍如何使用PHP设置仅针对您的域和子域使用CORS标头。

设置CORS标头

您可以使用以下代码设置CORS标头:

header('Access-Control-Allow-Origin: https://example.com');

此代码将在所有响应中添加Access-Control-Allow-Origin标头,表示响应可访问的域。在此示例中,我们只允许来自https://example.com域的请求。如果您想允许多个域,请使用逗号分隔它们。

仅针对子域使用CORS标头

若要仅允许来自子域的请求,请使用以下代码:

$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标头只是保护您的应用程序不受攻击的第一道防线。要确保应用程序的完整性和安全性,请正确配置服务器,验证所有传入的数据,并使用最佳安全实践。