HTTPSへの強制誘導
webのセキュリティ強化
 
2003/12/16
written Komuro


■環境

Apache 1.3.29+mod_ssl を使用したweb siteに対して、HTTPでアクセスしてきたユーザを、強制的に、HTTPSへ誘導する方法を検討した。


■ページの移動(perlの場合)ソースの先頭に記述
if ( $ENV{'SERVER_PORT'} == 80 ) {
  $url = "https://". $ENV{'SERVER_NAME'}. $ENV{'SCRIPT_NAME'};
print "Location: $url\n\n";




exit;
}

■ページの移動(PHPの場合)ソースの先頭に記述
<?php
if ($_SERVER["SERVER_PORT"] == 80) {
  $url = "https://{$_SERVER["SERVER_NAME"]}{$_SERVER["REQUEST_URI"]}";
header("Location: $url");
exit;
}
?>
 




■問題点

.htaccessを用いて認証を行っている時、ソースコードを読む前に、認証を聞かれてしまうため80ポートで止まってしまう。

遷移としては、以下のとおり。
1.httpでアクセス > 2.認証 > 3.httpsにジャンプ > 4.認証 > 5.該当site

この時、2の認証時点で、80ポートの認証になっているため、セキュリティ的に不十分になる。
(回避検討中)




 
HTTPSへの強制誘導
webのセキュリティ強化
 
2003/12/16
written Komuro