Session 使用Https的Kohana会话

Session 使用Https的Kohana会话,session,https,kohana,Session,Https,Kohana,我有一个主控制器,它检查会话安全性是否设置,如果没有设置,它将重定向到安全控制器 问题是安全控制器通过https,它检查密码并设置会话并重定向到主控制器。我无法通过http中的https访问会话集 那么我如何使用https并重定向到普通http呢?我需要http和https中的会话 有什么想法吗 编辑 好的,我四处查看了一下,如果不保证安全,这是不可能的。 一种选择是让会话通过GET发送,但它显然是不安全的,因此,如果在检查登录后,我将会话重定向到一个https表单,该表单将会话发布到一个正常的

我有一个主控制器,它检查会话安全性是否设置,如果没有设置,它将重定向到安全控制器

问题是安全控制器通过https,它检查密码并设置会话并重定向到主控制器。我无法通过http中的https访问会话集

那么我如何使用https并重定向到普通http呢?我需要http和https中的会话

有什么想法吗

编辑

好的,我四处查看了一下,如果不保证安全,这是不可能的。 一种选择是让会话通过GET发送,但它显然是不安全的,因此,如果在检查登录后,我将会话重定向到一个https表单,该表单将会话发布到一个正常的http页面,在html页面上,我检查标题并确保它来自我的https页面,该怎么办。
这听起来对你安全吗???

让你的整个应用程序使用HTTPS。附件是我几乎所有网站使用的块,将80上的所有内容重定向到443

##
# Sample config for a site needing SSL
#

$HTTP["host"] =~ "^ssl_example.localhost(:[0-9]+)?$" {
    # Serve everything over HTTPS
    $SERVER["socket"] == ":80" {
        url.redirect-code = 301
        url.redirect = ( "/(.*)" => "https://ssl_example.localhost:%1/$1" )
    }

    # This would be a great place to test SSL config for QA/Dev zones...
    $SERVER["socket"] == ":443" {
        ssl.engine = "enable"
        ssl.pemfile = rootdir + "/etc/ssl/example.pem" 
        server.document-root = "/home/crosslight/ssl_example/default"
        accesslog.filename = rootdir + "/var/log/ssl_example.log"
        server.errorlog = rootdir + "/var/log/ssl_example.error.log"
        server.tag = "Crosslight (lighttpd-1.4.28 + php-5.3.3) / SSL"

        // CodeIgniter/Kohana rewrite rules
        url.rewrite-once = (
            "^/index\.php" => "/index.php", #truncate index.php?params to just index.php
            #### Serve static content
            "^/(static.*)" => "/$1",
            "^/(blog.*)" => "/$1",
            "^/(.*)$" => "/index.php/$1"
        )
    }
}

为什么不让整个页面成为安全站点(https)的一部分?我看不到一种不在站点之间传递GET键的情况下进行http=>https转换的方法

如果您的逻辑是从房子http端的cookie中获取会话id(只有密钥),并在房子https端(手动)将其设置为cookie,那么我认为这并不是一个很大的安全问题。然后,您可以执行正常会话处理验证,以查看它是否为有效会话。尽可能将你的逻辑与滥用隔离开来

在后端,您可以在站点之间共享会话信息,也可以根据检索到的会话id触发从http到https的复制。取决于您的体系结构