Apache と PHP で、それを知り、HTTPS の使用を強制する最善の方法は何ですか?
phpinFO() で $_SERVER 変数を検索しましたが、役立つものは何も見つかりませんでした。
編集:回答と提案をありがとう!ログインページ専用であるため、サーバーレベルで強制することはできません。
$_SERVER['HTTPS']
HTTPS が使用された場合、空ではありません。ただし、Web サーバー レベルで HTTPS 強制を行う方がよいでしょう。
<virtualhost example.com:80>
redirect permanent https://example.com
</virtualhost>
<virtualhost example.com:443>
blah blah blah
</virtualhost>
また、HSTSHTTPヘッダーを追加することを検討してください。これにより、ブラウザはHTTPバージョンにアクセスしようとせず、HTTPSに直接アクセスするようになります。これにより、リダイレクトが傍受される可能性のある中間者攻撃を防ぐことができます。
(ユーザーが以前にサイトにアクセスしたことがある場合、またはWebサイトが組み込みのHSTSリストに追加されている場合)。
組み込みリストに追加する方法とヘッダーの例については、http://dev.chromium.org/stsを参照してください。
唯一の正しい答えは、サーバーがそのように動作するように構成したためです。
リクエストがHTTP経由で送信されたのかHTTPS経由で送信されたのかがPHPに送信されるまでに、絶対的な自信を持ってわからない場合は、システムが安全ではありません。
.htaccess ファイルに、次を追加します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://YOUR_URL/$1 [R,L]
</IfModule>