2

我用 CodeIgniter 开发了一个应用程序,主要用于学习目的。

我目前正在解决我的应用程序中的安全问题,我读到的一件事是使用 SSL。

我试图弄清楚我必须做什么才能在我的应用程序中使用 SSL。由于我的用户数量很少,我考虑在我的所有网站上使用 SSL。

在 CI 中 SSL 的另一个问题中,我发现了这一点:

$config['base_url'] = "https://www.yoursite.com/";

这就是我必须配置才能使用 SSL 的全部内容吗?我必须在某个地方购买证书吗?我的服务器有任何先决条件吗?

在此先感谢您的帮助!

4

3 回答 3

2

SSL 与您的服务器有关。不是你的服务器端脚本软件,即 php。

因此,您应该为您的服务器软件寻找 ssl。

现在,您有两个选择:

  1. 如果您在本地 Intranet 中运行,则可以使用 xampp 之类的软件,该软件默认通过自签名 ssl 证书为 apache 提供 https 功能。

  2. 如果您使用的是托管帐户,您应该获得一个签名的 ssl 证书。

当然,您指定的 codeigniter 中的设置必须设置为实际使用https.

于 2012-10-08T11:38:56.707 回答
0

是的,您将需要 SSL 证书。大多数当前的服务器都可以很好地处理这些,尽管您的服务器需要一个个人 IP 地址。

于 2012-10-08T11:33:08.593 回答
0

从位置 application/config/config.php 打开配置文件并启用或设置挂钩为 true,如下所示:

$config['enable_hooks'] = TRUE;
Then create a new file named hooks.php inside the config folder (i.e. application/config/hooks.php) and add the following code in it:

$hook['post_controller_constructor'][] = array(
    'function' => 'redirect_ssl',
    'filename' => 'ssl.php',
    'filepath' => 'hooks'
);

**Now create a new directory named hooks inside the application folder (i.e. application/hooks) and then create a new file named ssl.php inside the hooks folder (i.e. application/hooks/ssl.php).
Add the following code in the ssl.php file:**

function redirect_ssl() {
    $CI =& get_instance();
    $class = $CI->router->fetch_class();
    $exclude =  array('client');  // add more controller name to exclude ssl.
    if(!in_array($class,$exclude)) {
        // redirecting to ssl.
        $CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']);
        if ($_SERVER['SERVER_PORT'] != 443) redirect($CI->uri->uri_string());
    } else {
        // redirecting with no ssl.
        $CI->config->config['base_url'] = str_replace('https://', 'http://', $CI->config->config['base_url']);
        if ($_SERVER['SERVER_PORT'] == 443) redirect($CI->uri->uri_string());
    }
}
于 2019-08-05T05:33:25.397 回答