投稿データ(パスワードなど)が傍受された場合、プレーンテキストとして表示されます。SSL / HTTPSを使用すると、送信するデータの暗号化が提供されます。ユーザーの認証/ログインの目的で、クライアント側のJavaScriptなどに依存することはありません。安全な接続が使用されていることを確認することで、ユーザーの信頼も高まる可能性があります。
まず、SSLとHTTPS全般、およびSSL証明書について読みました。Wiki、Google、SOはすべて見るのに適した場所であり、そこにはたくさんの情報があります。
CIでSSL/HTTPSを使用する場合、次のことが役立ちます。
特に、 Nigelの投稿からのforce ssl関数:
ssl_helper.phpという名前のファイルをapplication/helperに作成します
if (!function_exists('force_ssl'))
{
function force_ssl()
{
$CI =& get_instance();
$CI->config->config['base_url'] =
str_replace('http://', 'https://',
$CI->config->config['base_url']);
if ($_SERVER['SERVER_PORT'] != 443)
{
redirect($CI->uri->uri_string());
}
}
}
function remove_ssl()
{
$CI =& get_instance();
$CI->config->config['base_url'] =
str_replace('https://', 'http://',
$CI->config->config['base_url']);
if ($_SERVER['SERVER_PORT'] != 80)
{
redirect($CI->uri->uri_string());
}
}
ヘルパーをロードしてから、SSLを必要とするコントローラーのコンストラクターに次のように挿入します。
force_ssl();
sslを配置したくないすべてのコントローラーで:
if (function_exists('force_ssl')) remove_ssl();
これはプログラムによるアプローチです。別の方法は、.htaccessを使用することです(Apacheを使用している場合)。