Kohana会议与Https

时间:2012-06-02 19:38:32

标签: session https kohana

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

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

中的https访问会话集

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

中的会话

Anyideas?

  

修改

好的,我查了一下,如果不保证安全,那就不可能了。 一个选项是通过GET发送会话,但它显然不安全,那么如果在检查登录后我将它们重定向到https表单,将会话发布到正常的http页面,在html页面我检查标题并确保它来自我的https页面。 听起来对你来说安全吗??

2 个答案:

答案 0 :(得分:0)

将您的整个应用设为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"
        )
    }
}

答案 1 :(得分:0)

为什么不让整个页面成为安全网站(https)的一部分?我没有办法做http => https转换没有在站点之间传递GET密钥。

如果您的逻辑是从房子的http侧的cookie获取会话ID(仅密钥)并在https端将其作为cookie(手动),我认为这不是一个如此巨大的安全问题在这所房子里面。然后,您可以执行正常的会话处理验证,以查看它是否是有效的会话。尽可能地将您的逻辑与滥用隔离开来。

在后端,您可以在站点之间共享会话信息,也可以根据检索到的会话ID触发从http到https的副本。取决于您的架构。