如果您的帖子数据(密码等)被拦截,那么它只会以纯文本形式显示。使用 SSL/HTTPS 将为您发送的数据提供加密。我不会依赖客户端 JavaScript 或任何类似的东西来验证/登录用户。看到正在使用安全连接,这也可能让您的用户更有信心。
首先,我刚刚阅读了有关 SSL 和 HTTPS 的一般信息,以及 SSL 证书 - Wiki、Google 和 SO 都是不错的地方,那里有大量信息。
对于在 CI 中使用 SSL/HTTPS,我发现这些很有用:
特别是Nigel 帖子中的 force ssl 函数:
在 application/helper 中创建一个名为 ssl_helper.php 的文件
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)。