我正在编辑一个在HTTPS下运行时执行特殊处理的Perl CGI应用程序。
现在,我正试图通过在请求URI中手动查找“https://”来检测它:
my $is_secure = $cgi->request_uri =~ m{^https://};
这样做有点干净吗?
答案 0 :(得分:10)
根据the documentation,CGI.pm有https()
方法:
对SSL协议生效时存在的HTTPS环境变量进行操作。可用于确定SSL是否已打开。
这可能就是你要找的东西。如果没有参数,则返回HTTPS环境变量列表。
答案 1 :(得分:1)
使用$ ENV {' HTTPS'}
my $is_secure = $ENV{'HTTPS'};
或者更好,只需使用$ ENV {' HTTPS'}代替$ is_secure