![如何确定您是否在不使用$ _SERVER ['HTTPS']的情况下使用HTTPS,第1张 如何确定您是否在不使用$ _SERVER ['HTTPS']的情况下使用HTTPS,第1张](/aiimages/%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E6%82%A8%E6%98%AF%E5%90%A6%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%24+_SERVER+%5B%26amp%3B%23039%3BHTTPS%26amp%3B%23039%3B%5D%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E4%BD%BF%E7%94%A8HTTPS.png)
即使
$_SERVER['HTTPS']未定义,这也应该始终有效 :
function isSecure() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443;}该代码与IIS兼容。
:
1)如果通过HTTPS协议查询脚本,则设置为非空值。
2)请注意,当将ISAPI与IIS一起使用时,如果请求不是通过HTTPS协议发出的,则该值将为“ off”。(对于运行PHP作为Fast-
CGI应用程序的IIS7,已经报告了相同的行为)。
另外,
$_SERVER['HTTPS']即使安全连接,Apache1.x服务器(以及损坏的安装)也可能尚未定义。尽管不能保证,但按照惯例,端口443上的连接可能使用安全套接字,因此需要进行额外的端口检查。
附加说明:如果客户端与服务器之间存在负载平衡器,则此代码不会测试客户端与负载平衡器之间的连接,而是测试负载平衡器与服务器之间的连接。要测试以前的连接,您必须使用
HTTP_X_FORWARDED_PROTO标头进行测试,但这要复杂得多。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)