准确放置codeigniter文件的位置

时间:2017-03-22 16:33:29

标签: php codeigniter security subdirectory

我一直在使用codeigniter几个月,而对于我的第一对项目,我只是将所有文件放在root中。这样工作正常,但是阅读手册表明出于安全原因应该移动系统和应用程序文件 - 而index.php应该在根目录中。

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

  1. “将CodeIgniter文件夹和文件安装到您的服务器。通常,index.php文件将位于您的根目录下。”
  2. “为了获得最佳安全性,系统和任何应用程序文件夹都应放在Web根目录之上,以便不能通过浏览器直接访问它们。”
  3. 所以,读到这个,我真的不明白我应该把文件放在哪里。目前,作为解压缩,它是一个我称为codeigniter的文件夹,包含所有ci文件:系统,应用程序,用户指南,index.php等。

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

    我应该这样做吗?

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

    所以基本上只有index.php会在我的root中? (如果需要,可能还有资产和用户手册?)

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

    任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

你可以做这样的事情

www.mywebsite.com(位于/根目录的文件夹) - (例如:如果AWS - 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

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

上调用CSS / JS / Images时
.htaccess

因此,您可以在.htaccess的帮助下撤消对System文件夹的权限。(他们(Codeigniter团队)已经这样做了)。如果您打开系统文件夹,则会有一个名为<IfModule authz_core_module> Require all denied </IfModule> <IfModule !authz_core_module> Deny from all </IfModule> 的文件。打开它,你可以看到这样的东西

base_url()

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

  1. 正确设置<head> <script> function sendAnswer(ans){ var questionID = getNumber(); var data = readCSV(questionID); // True if answer number matches correct answer number if(data[5] == ans ){ console.log("true") <% updateData(1) %> }else{ console.log("false") <% updateData(0) %> }; // Create Chart Button after answering $("#bottom").append('<div id="showChart"></div>'); $("#showChart").html('<button id="showChartBtn" onclick="showChart()">Show Chart</button>'); }; </script> <script> function showChart(){ window.location.href = "/chart"; }; </script> </head> <body> <% alphabets = ["A", "B", "C", "D"] %> <!-- For loop to make A-D choices --> <% for i in 0..3 %> <button class="choice_btn" id="btn_<%= i %>" onclick="sendAnswer(<%= i %>);"> <%= alphabets[i] %> </button> <% end %> <div id="bottom"> <!-- Chart Button comes here --> </div> </body>
  2. 使用Codeigniter输入法。 (以防止注射。read more on this
  3. 链接资源

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