使用Sparks安装安全的CodeIgniter

时间:2011-06-07 01:35:46

标签: codeigniter security sparks-pakage-management

安装Sparks假定您遵守默认的CodeIgniter安装模式;将应用程序,系统和用户指南文件夹以及index.php和许可证文件解压缩到您的Web根目录中。

但是,出于安全原因,我们中的许多人将应用程序和系统文件夹从Web根目录中拉出来,并在主index.php文件中重新路由$ system_path和$ application_folder变量。

这种分离往往会破坏Spark的安装。特别是getsparks installation instructions中使用的简单示例 - spark。

收到错误:

  

遇到错误无法找到   火花路径   火花/例如火花/ 1.0.0 /

我维护以下目录结构:

  • CISYS
    • V202
    • V200
  • project1_application
  • project2_application
  • project3_application
  • www(public html)
    • PROJECT1
      • CSS
      • JS​​
      • 图像
    • 项目2

为了实现安全+火花,我必须改变什么?打开任何类型的建议。你如何设置你的安装?

2 个答案:

答案 0 :(得分:13)

回答我自己的问题:解决方案是在MY_Loader.php文件中。通过修改第43行的SPARKPATH变量,可以重新路由所有火花的位置!干杯!

答案 1 :(得分:1)

我就是这样做的:

我有以下目录结构:

- project_name
- application
- public
    - index.php
    - js
    - css
    - img
    - compressed_assets
    - etc
- sparks
- system
- tmp
- tools

我的Apache DocumentRoot是... / project_name / public

通过这种方式,Apache只提供公共资产和index.php(它是CodeIgniter的网关)。

我不需要使用.htaccess隐藏任何内容。如果我错误地删除了.htaccess,则没有公开私有数据。

我甚至可以将css和js文件夹降低一级(但我没有,因为我在某些环境中提供未压缩的资产(主要是开发))。

关于主题:

index.php通常使用相对路径定义系统和应用程序路径,如下所示

$system_path = 'system'; //index.php line 82

$system_path = 'system'; //index.php line 97

但我更喜欢使用绝对路径,所以我有这个:

define('ROOTPATH', dirname(dirname(__FILE__)));
$system_path = ROOTPATH.'/system';
$application_folder = ROOTPATH.'/application';

在constants.php里面

define('SPARKPATH',ROOTPATH .'/sparks/');

PS:注意火花路径不遵循CI约定并且有一个尾部斜杠。