4
我在网站上使用CORS。CORS与PHP会话
代码示例:
header("Access-Control-Allow-Origin: *");
session_start();
$session_id = session_id();
此代码工作正常,但它每次都返回一个新的会话ID。
如何在这种情况下维护会话数据?
我在网站上使用CORS。CORS与PHP会话
代码示例:
header("Access-Control-Allow-Origin: *");
session_start();
$session_id = session_id();
此代码工作正常,但它每次都返回一个新的会话ID。
如何在这种情况下维护会话数据?
虽然您允许使用Access-Control-Allow-Origin
标头从外部域进行访问,但会话本身是基于cookie的。
如果发出请求的脚本是从外部域传递的,它将无法读取cookie并将其传递到您的服务器。
解决方案:从与AJAX服务相同的上下文(即相同的协议/域/端口)发送进行调用的JS。还要确保cookie本身不限于不同的子域或路径。
不要尝试通过POST或GET请求传递会话标识符,这会使您的应用程序容易受到CSRF的影响。
顺便说一句,将允许的原点设置为*
也是不鼓励的,因为它也可以用于XSS/CSRF,并与其他技术结合使用。请限制对第三方域的请求。
最后但并非最不重要的,您可能还想通过HTTP OPTIONS查看预检请求的主题。