检查页面是否在PHP中使用SSL

时间:2011-05-18 07:00:25

标签: php http ssl

我需要检查页面是否使用SSL连接。我知道如何查看$_SERVER['HTTPS'] == 'on'。这是一个很好的方法吗,还是我应该使用其他逻辑? 对不起我的英语不好。感谢。

2 个答案:

答案 0 :(得分:7)

$_SERVER['HTTPS'] 可能包含'on'以外的值,或者可能根本不设置。 The manual says如果使用SSL,它将被设置为“非空”值,但在IIS上它可能设置为'off'。所以,使用:

if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off') {
    // I feel insecure...
} else {
    // SSL, yay!
}

答案 1 :(得分:2)

在检查documentation时,我认为isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "off"应足以检测您是否使用https://,而不只是$_SERVER['HTTPS"] == "on"

显然在IIS中使用ISAPI,其值很容易设置为$_SERVER['HTTPS'],因此单独进行empty()isset()检查是不够的。