CORS与php会话

use*_*341 4 php session-cookies http-headers cors

我正在网站上与CORS合作.

代码示例:

header("Access-Control-Allow-Origin: *");
session_start();
$session_id = session_id();
Run Code Online (Sandbox Code Playgroud)

此代码工作正常,但每次都返回一个新的会话ID.

在这种情况下如何维护会话数据?

lxg*_*lxg 5

虽然您允许使用Access-Control-Allow-Origin标头从外部域进行访问,但会话本身是基于cookie的.

如果发出请求的脚本是从外部域传递的,则它将无法读取cookie并将其传递给您的服务器.

解决方案:交付JS,它从与AJAX服务相同的上下文(即相同的协议/域/端口)进行调用.还要确保cookie本身不限于不同的子域或路径.

不要尝试通过POST或GET请求传递会话标识符,这将使您的应用程序容易受到CSRF的攻击.

顺便说一下,*也不建议将允许的原点设置为,因为它也可以与其他技术结合用于XSS/CSRF.请限制对第三方域的请求.

最后,但并非最不重要的是,您可能还想通过HTTP OPTIONS查看预检请求的主题.