gpt4 book ai didi

带 SSL 的 Codeigniter 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:40 26 4
gpt4 key购买 nike

我已经尝试了大多数使用 SSL 的 Codeigniter 解决方案,但没有一个有效。

我需要的是在 SSL 下运行的整个网站,它是一个有很多表单并显示来自数据库的数据的网站,比如管理部分,所以唯一使用的资源是 css、js 和一些图像,没有别的.

这是我的 config.php 文件中的内容。

$config['base_url'] = 'https://admin.example.ie/';

主要.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

order deny,allow
deny from all
allow from 86.XXX.XXX.XXX

应用程序/.htaccess

Options -Indexes
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ index.php?/$1 [L]

#When your application folder isn't in the system folder

RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>

部分有效。

这是访问主页时的var_dump($_SERVER)

["FCGI_ROLE"]=> string(9) "RESPONDER" 
["HTTPS"]=> string(2) "on"
["SSL_TLS_SNI"]=> string(28) "admin.example.ie"
["HTTP_HOST"]=> string(28) "admin.example.ie"
["HTTP_USER_AGENT"]=> string(72) "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0)
["HTTP_CONNECTION"]=> string(5) "close"
["SERVER_SIGNATURE"]=> string(74) " Apache Server at admin.example.ie Port 443"
["SERVER_SOFTWARE"]=> string(6) "Apache"
["SERVER_NAME"]=> string(28) "admin.example.ie"
["SERVER_ADDR"]=> string(15) "XXX.XXX.XXX.XXX"
["SERVER_PORT"]=> string(3) "443"
["REMOTE_ADDR"]=> string(11) "86.XXX.XXX.XXX"
["REMOTE_PORT"]=> string(5) "58332"
["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1"
["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1"
["REQUEST_METHOD"]=> string(3) "GET"

所以我可以看到 SSL 在这里工作。但是,如果我输入我的登录名和密码(主页只是一个登录页面)并转到已登录用户的主页,我将失去安全连接。

["FCGI_ROLE"]=> string(9) "RESPONDER" 
["REDIRECT_STATUS"]=> string(3) "200"
["HTTP_HOST"]=> string(28) "admin.example.ie"
["HTTP_USER_AGENT"]=> string(72) "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0"
["HTTP_CONNECTION"]=> string(5) "close"
["SERVER_SIGNATURE"]=> string(73) "Apache Server at admin.example.ie Port 80"
["SERVER_SOFTWARE"]=> string(6) "Apache"
["SERVER_NAME"]=> string(28) "admin.example.ie"
["SERVER_ADDR"]=> string(15) "217.XXX.XXX.XXX"
["SERVER_PORT"]=> string(2) "80"
["REMOTE_ADDR"]=> string(11) "86.XXX.XXX.XXX"
["REMOTE_PORT"]=> string(5) "58392"
["REDIRECT_URL"]=> string(15) "/employee/home"
["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1"
["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1"
["REQUEST_METHOD"]=> string(3) "GET"
["REQUEST_URI"]=> string(15) "/employee/home"

关于为什么会发生这种情况的任何想法。我们可以将此项目移交给存在此安全漏洞的客户。

最佳答案

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

尝试将其添加到您的 htaccess 的顶部,在其他规则之前。

不要复制 RewriteEngine On

此外,您如何在您的应用中构建 URL 和表单操作?我会用 <a href=/secure_page>而不是 <a href=http://page> .

关于带 SSL 的 Codeigniter 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22764324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com