Ограничивает прямой доступ к вашим view-файлам в CodeIgniter? - PullRequest
0 голосов
/ 05 марта 2010

Я новичок в CodeIgniter, мне было интересно, считается ли хорошей практикой ограничивать прямой доступ к вашим файлам просмотра? Очевидно, что они будут содержать много php-кода, который полагается на переменные и то, что не передается им из контроллера, поэтому php-код может легко выдать ошибку, если к нему напрямую обращаются, не так ли?

Дополнительный вопрос: почему в папке приложения пустые папки помощников, библиотек, хуков и т. Д.?

Спасибо за ваше время.

Ответы [ 3 ]

5 голосов
/ 05 марта 2010

Основная причина, по которой никто не мешает ограничить доступ к своим файлам просмотра, заключается в том, что они либо приведут к фатальной ошибке, либо покажут бесполезную страницу.

Если люди захотят попытаться выяснить структуру папок и имена файлов, они будут вознаграждены ... абсолютно ничем. Вам нужно написать действительно сумасшедший код, чтобы сделать просмотр небезопасным.

Если вы ДЕЙСТВИТЕЛЬНО хотите их обезопасить, продолжайте.

В верхней части окна введите:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); ?>
<h1>Whatever</h1>
1 голос
/ 05 марта 2010

пользователь, если вы находитесь на общем хосте и не разрешаете доступ ни к чему, кроме папки wwwroot, вы можете создать подпапку (назовите ее «private») и написать ее файл .htaccess, чтобы отклонить все запросы к этомувложенная папка.Затем вы можете поместить системные и прикладные папки codeigniter в эту подпапку и поместить вашу папку index.php в обычное расположение (изменив переменные «system» и «application» внутри index.php для правильного отражения новых путей) и такВесь код защищен от прямого доступа.: -)

отредактировано: о вопросе папок, о его размерах.Хелперы, библиотеки, хуки-папки приложений предназначены для конкретных элементов приложения.Может быть, те, которые вы создаете на заказ, или, может быть, те, которые были загружены от третьих лиц.Но идея в том, что у вас есть «общесистемные» элементы, а затем у вас есть «общесоциальные» элементы.Наличие папок приложений позволяет расширять общесистемные элементы для удовлетворения конкретных потребностей приложений (см. Подробнее @ http://codeigniter.com/user_guide/general/creating_libraries.html). Это не имеет особого смысла для одного приложения, но если в вашей установке несколько приложений, то это действительно то, гдеэто пригодится.

1 голос
/ 05 марта 2010

Я никогда не видел, чтобы кто-то ограничивал доступ к просмотру файлов, но я не вижу причин, по которым вы не сможете этого сделать.Для большей безопасности вы должны поместить вашу папку системы и приложения ниже корневого веб-каталога и указать index.php один каталог на эти папки.Таким образом, возможность прямого доступа к вашим файлам невелика.

Что касается того, почему папки пусты.Папка приложения - это место, куда вы помещаете ВАШ код.Папки помощника, библиотеки и модели в системной папке заполняются исходным кодом.Цель состоит только в том, чтобы поместить ваш код в приложение, поэтому при обновлении до будущих версий CodeIgniter вы не нарушите реализованный код или функциональность.Вы также можете перегрузить функции codeigniter, выполнив то, что здесь сказано ...

http://codeigniter.com/user_guide/general/creating_libraries.html

и прокрутите вниз до "Расширение собственных библиотек"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...