在网上找了很多,终于搞明白了,也行不是最好的办法,但确实非常使用的方法。
其中最重要的就是 设置session id 至 本地 cookies 当中, 采用如下方法:
$currentSessionID = session_id();
和
session_id($currentSessionID );
简单实例:
Script 1(HTTP)
:
<?php
// This script will create a session and display a link to your secure server address
// to transfer your session ID. In this example, the secure page to receive the session
// ID is located at http://www.yoursite.com/safePages/securePage.php
// Start a session using the current session ID stored in a cookie, or create
// a new session if none is set.
session_start();
$currentSessionID = session_id();
// Set a variable that will be retrieved with the HTTPS script.
$_SESSION['testvariable'] = 'It worked';
// $secureServerDomain is the domain of your secure server
$secureServerDomain = 'www.yoursite.com';
// $securePagePath is the path to the page that will receive and set the session ID.
$securePagePath = '/safePages/securePage.php'
echo '<a href="https://' . $secureServerDomain . $securePagePath . '?session="' . $currentSessionID . '">Click here to transfer your session to the secure server</a>';
?>
Script 2(HTTPS)
:
<?php
// Retrieve the session ID as passed via the GET method.
$currentSessionID = $_GET['session'];
// Set a cookie for the session ID.
session_id($currentSessionID);
// Start a session.
session_start();
// Test retrieval of variable set when using HTTP.
if (!empty($_SESSION['testvariable'])) {
echo $_SESSION['testvariable'];
} else {
echo 'It did not work.';
}
?>
但是要注意的是:
http://www.mysite.com/page.php
跳转到 https://www.mysite.com/page.php
或者
http://mysite.com
跳转到 https://mysite.com/page.php.
关于安全性:
应该讲和传统的登录验证安全性一样。都是不太安全的。因为sid的传输是没有加密的,别人也可以通过监听,嗅探来获取这个session id,也就获取了你的session数据。因此后面可以考虑将session id信息加密之后进行传输。
另一种就是采用数据库的方式:
见附件。
require_once "session.class.php";
$oSession = new Session();
print_r($_SESSION); // First
$_SESSION['hi'] = "lisha"; // Comment this Once sessoin is set
$_SESSION['test'] = "gideon"; // Comment this Once sessoin is set
echo '===========';
//Now use php sessions as usual
print_r($_SESSION); // First
说明一下的是,需要用到 session_set_save_handler 函数,它要配合 ini_set('session.save_handler', 'user'); 一起使用!
分享到:
相关推荐
3. **文档源(Document Origin)**:如果`iframe`的源和父页面可以通过设置相同的协议(http/https)、主机名和端口实现完全匹配,那么它们就被认为是同源的,可以共享`session`。 4. **PostMessage API**:这是一...
在PHP中处理HTTP和HTTPS跨域Session时,开发者需要手动管理Session ID的传递,同时关注安全问题。通过在客户端存储Session ID,并在请求中携带,可以实现在不同协议间的Session共享。然而,必须采取适当的加密和安全...
当用户在不同域之间跳转时,如果不进行特殊处理,Session信息将无法跨域共享。 以下是一些处理Session跨域的常见方案: 1. **共享sessionId**: - **设置共同的Cookie**: 当用户在主域(如`.a.com`)登录后,...
总之,实现HTTP和HTTPS跨域共享session的关键在于手动管理和传递session ID。虽然上述方法简单实用,但需要注意其可能带来的安全问题。在实际应用中,应结合加密和安全策略,以确保用户数据的安全。
在ASP.NET中实现跨子域共享SESSION,主要有以下几种方法: 1. **Cookie-Based Sharing**: 这是最常见的方法,通过设置Cookie的`Domain`属性来实现。将Session ID存储在Cookie中,并设置Cookie的域为父域,如`....
在Web开发中,Cookie和Session是两种常见的用户身份验证机制,尤其在C#编程语言中,它们被广泛用于实现登录功能。本实例将探讨如何在C#环境下利用Cookie和Session来处理用户登录状态。 首先,我们要理解Cookie和...
3. 不能跨域共享:每个域名有自己的Session,不同域间的页面无法直接共享Session数据。 4. 安全性:Session信息存储在服务器端,相对安全,但若Session ID被窃取,可能会导致安全性问题。 5. 依赖客户端:如果用户...
这段代码的作用是设置HTTP头中的P3P(Platform for Privacy Preferences Project)政策,允许不同域之间的iframe进行某些级别的数据共享,包括Session。P3P头的`CP`参数表示饼干(Cookie)策略,这里的`ALL ADM DEV ...
<script src=\"http://a.com/openid.aspx?sessionid="+ sessionid +"\"></script> sessionid 为每个用户登录到A域后生成的唯一标识。 B域根据这个标识来确定是否更新自己域的cookie,每次更新后都需刷新页面一次,这...
3. **跨域限制**:Session无法跨域共享,不同子域名之间无法共享Session信息。 **使用Session的注意事项** 1. **合理设置生命周期**:避免设置过短导致用户频繁登录,过长则浪费服务器资源。 2. **控制Session使用...
最近由于一个项目,模块切换为ajax请求数据,当Session失效后,ajax请求后没有返回值,只有响应的html:<...显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不
一同事求援:后台系统的登录成功了,但不能成功登进系统,仍然跳转到登录页,但同一套代码另一个环境却没有问题。 背景 经了解,他对同一个项目使用tomcat部署了两个环境,一个在开发服务器上,一个在他本机,两个...
总的来说,通过Nginx实现负载均衡,结合Redis和相应的Java库,我们可以构建一个高可用且能有效处理Session共享的Web环境。这个压缩包提供的jar包正是实现这一目标的关键组件。在实际部署时,需要正确配置Nginx的...
(6) **跨域处理**:使用`P3P`协议或者通过服务器端代码共享Session ID来解决跨域问题。 (7) **监控和日志记录**:定期检查服务器性能,记录Session丢失的异常情况,便于分析和调试。 以上是关于ASP.NET中Session...
本项目使用session和cookie技术来实现这一功能,下面我们将详细探讨这些关键知识点。 首先,我们要理解**session**和**cookie**在SSO中的角色。Session是服务器端存储的一种机制,用于保存用户会话数据。当用户登录...
- **SESSION存储**:SESSION通常存储在服务器端,避免跨域问题和数据安全性。 - **客户端同步**:将SESSION ID返回给微信小程序,小程序将其保存在本地,通常是缓存或者全局变量中。 - **后续请求携带SESSION**:...