【问题标题】:Where exactly to place codeigniter files究竟在哪里放置codeigniter文件
【发布时间】:2017-08-14 22:04:15
【问题描述】:

我已经使用 codeigniter 几个月了,对于我的前几个项目,我只是将所有文件放在根目录中。这样可以正常工作,但是阅读手册后建议出于安全原因,应该移动系统和应用程序文件——而 index.php 应该在根目录中。

我正在开始一个新项目,回去并再次阅读说明,并尝试完全按照他们说的做这一次。但是,我无法理解手册的this page 中给出的以下说明:

  1. "将 CodeIgniter 文件夹和文件安装到您的服务器。通常 index.php 文件将位于您的根目录下。"
  2. “为了获得最佳安全性,系统和任何应用程序文件夹都应置于 Web 根目录之上,这样就无法通过浏览器直接访问它们。”

所以,读到这里,我真的不明白我应该把文件放在哪里。目前,解压后,它是一个名为 codeigniter 的文件夹,其中包含所有 ci 文件:系统、应用程序、用户指南、index.php 等。

所以我的新网站目前有这样的结构: --www.mywebsite.com ------公开

我应该这样做吗?

--www.mywebsite.com
-----codeigniter
--------application
--------system
--------assets
--------user manual
-----------Public
______________index.php

所以基本上只有 index.php 会在我的根目录中? (如果我愿意,也许还有资产和用户手册?)

我确实在某处读过,如果我移动系统和应用程序文件,我需要更改它们的路径——这应该很容易,但我想确保在我投入所有资源之前正确理解 ci 手册的建议让新设置正常工作的时间。

任何帮助将不胜感激!

【问题讨论】:

    标签: php codeigniter security subdirectory


    【解决方案1】:

    你可以这样做

    www.mywebsite.com(其所在的文件夹/根目录)-(例如:如果 AWS - /opt/webapps/mysite/

    other
        - application
        - system
        - assets
    index.php
    .htaccess <-- mainly to remove index.php from URL and other stuffs as well
    

    然后在index.php(在根上)

    $system_path = 'other/system'; # Line 100
    $application_folder = 'other/application'; # Line 117
    

    assets 文件夹上调用 CSS/JS/Images 时

    <link rel="stylesheet" type="text/css" href="<?php echo base_url()?>other/assets/boostrap.css">
    

    因此您可以在.htaccess 的帮助下撤销对系统文件夹的权限。(他们(Codeigniter 团队)已经这样做了)。如果您打开系统文件夹,则会有一个名为.htaccess 的文件。打开它可以看到这样的东西

    <IfModule authz_core_module>
        Require all denied
    </IfModule>
    <IfModule !authz_core_module>
        Deny from all
    </IfModule>
    

    我建议你从安全方面做什么

    1. 正确设置base_url()
    2. 使用 Codeigniter 输入法。 (防止注射。read more on this

    链接资源

    1. Security - Codeigniter.com
    2. Some more about Security - tutorialspoint.com

    【讨论】:

    • 谢谢阿卜杜拉!
    • 没问题。乐于助人:)
    • 是的,我会的——我拍了一张我现在拥有的照片。它是否正确? i.imgur.com/fLSiJSl.jpg
    • @Cyclist 这就是 CI 的来源。没有看到任何变化
    • 再次嗨...我根本不会更改 ci,只是想弄清楚该放在哪里!我意识到我发送的最后一张图片没有将应用程序和系统文件放在根目录之上。这是我的第二次尝试。如果我理解正确,我的示例中的根目录是“public”,并且我将 CI 的 index.php 文件移到了 public(从 ci 文件夹中)——因为说明似乎说 index.php 应该在根目录中。我将带有系统/应用程序的 CI 文件夹放在根目录之上。这是我最新的....你能告诉我这看起来是否正确吗? i.imgur.com/ZWDd8OU.jpg
    猜你喜欢
    • 2012-06-29
    • 2013-12-16
    • 2013-08-20
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多