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