Дата  Запланированые курсы
24.11 Linux-MP. Модульная программа «Архитектура и администрирование Linux»
24.11 Linux-LE. Основы архитектуры и администрирования Linux
26.11 Поисковая оптимизация (SEO)
26.11 Средства растровой графики. Adobe Photoshop
26.11 Управление проектами (MS Project)
27.11 DEV-J30. Программирование на платформе Java. Разработка многоуровневых приложений (Группа II)
27.11 DEV-J30. Программирование на платформе Java. Разработка многоуровневых приложений (Группа I)
28.11 CORTEX-M-MP. Введение в технологии разработки систем управления на базе МК с RISC ядром ARM Cortex-M
28.11 CORTEX-M-INTRO. Введение в современную микроконтроллерную технику
03.12 Трёхмерное моделирование. 3ds Max
03.12 Компьютерное проектирование в системе AutoCAD (базовый курс)
03.12 DEV-C21. Объектно-ориентированное программирование. Углубленное изучение. Язык С++
07.12 DEV-PY200. Объектно-ориентированное программирование на языке Python
10.12 Основы создания веб-сайтов. Adobe Dreamweaver
10.12 Поисковая оптимизация (SEO) для профессионалов
10.12 Средства векторной графики. Adobe Illustrator
12.12 Инструменты бизнес-анализа Microsoft Excel: PowerPivot, PowerView
12.12 CORTEX-M-RISC. RISC-архитектура ARM Cortex-M в микроконтроллерах
17.12 MOC-20762. Разработка баз данных SQL
17.12 Работа в MS Excel. Расширенные возможности
17.12 Компьютерное проектирование в системе AutoCAD (профессиональный курс)
17.12 Adobe After Effects. Создание анимации и эффектов
09.01 DEV-C22. Стандарт С++11, С++14, С++17 для прикладного программирования
14.01 DEV-OCPJP. Подготовка к сдаче сертификационных экзаменов серии Oracle Certified Professional Java Programmer
14.01 DEV-OCPJP. Подготовка к сдаче сертификационных экзаменов серии Oracle Certified Professional Java Programmer
16.01 CORTEX-M-STM32F. Семейство МК компании ST Microelectronics STM32Fxxx с вычислительным ядром ARM Cortex M3
19.01 Linux-LF. Расширенное администрирование ОС Linux
04.02 DEV-QT10. Прикладное программирование на С++ с использованием Qt. Базовый уровень
11.02 DEV-J60. Технологии разработки корпоративных приложений на платформе Java Enterprise Edition (Java EE)
11.02 DEV-J60. Технологии разработки корпоративных приложений на платформе Java Enterprise Edition (Java EE)
13.02 CORTEX-M-RTOS. Разработка управляющих программ для МК систем управления с использованием многозадачных ОС реального времени
11.03 Введение в тестирование программного обеспечения
11.03 Введение в тестирование программного обеспечения
11.03 Введение в тестирование программного обеспечения
20.03 NET-DLINKSW-LAB. Технологии коммутации современных сетей Ethernet. Лабораторный практикум
Открыт набор на осенний семестр в Академию информатики для школьников Открыт набор на осенний семестр на программы второго высшего образования
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Относительные и абсолютные пути
Takker
#1 Оставлено : 15 октября 2010 г. 16:12:09(UTC)
Ранг: Новичок

Группы: Зарегистрированные пользователи
Зарегистрирован: 23.05.2010(UTC)
Сообщений: 8
Баллов: 24

Здравствуйте!
Очень хотелось бы получить обоснованный ответ на вопрос: <b>что лучше использовать - относительные или абсолютные пути в создании php-скриптов?</b>

Лично я ратую за относительные пути - они универсальные и более удобные в плане переноса проектов с сервера на сервер. Однако недавно один разработчик высказал мнение, что использование относительных путей неоправданно с точки зрения безопасности. Без аргументов, правда. Но заставляет задуматься. Одним словом, необходимо мнение профессионалов.

P.S. Жажду ответа от Елены Сергеевны)
Реклама
Elena.Benker
#2 Оставлено : 15 октября 2010 г. 16:25:17(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 01.10.2005(UTC)
Сообщений: 136
Баллов: 408
Откуда: Russia St. Petersburg

Поблагодарили: 1 раз в 1 постах
Относительные пути, несомненно, удобны в смысле переноса.
Хотелось бы понять аргументы того разработчика.
Абсолютный путь можно писать явно, например: /var/www/html/mysite, что скверно и с точки зрения безопасности, т.к. показывает структуру каталогов на сервере.
С другой стороны, абсолютный путь в формате $_SERVER['DOCUMENT_ROOT']."/mysite" ничем не плох и комфортен при переносе проекта.
Takker
#3 Оставлено : 15 октября 2010 г. 16:43:42(UTC)
Ранг: Новичок

Группы: Зарегистрированные пользователи
Зарегистрирован: 23.05.2010(UTC)
Сообщений: 8
Баллов: 24

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

Впрочем, это же надо учитывать и при использовании относительных путей.

Есть невнятное (личное) ощущение, что вызов одного и того же файла по относительному и по полному пути будет по-разному восприниматься сервером и иметь разное время исполнения.
Elena.Benker
#4 Оставлено : 15 октября 2010 г. 18:25:47(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 01.10.2005(UTC)
Сообщений: 136
Баллов: 408
Откуда: Russia St. Petersburg

Поблагодарили: 1 раз в 1 постах
Дизайн и структура каталогов - вещи несвязанные. Пути для указания шаблонов можно писать любым доступным способом, разницы нет.
Проверить ваше ощущение сложно, т.к. время выполнения скрипта ничтожно, но то, что пути, заданные разными способами, воспринимаются одинаково - это точно.
Тут просто нет почвы для разного времени исполнения, особенно если сравнивать со временем обращения к серверу баз данных или, тем более, со временем доставки страницы клиенту.
Takker
#5 Оставлено : 16 октября 2010 г. 3:53:49(UTC)
Ранг: Новичок

Группы: Зарегистрированные пользователи
Зарегистрирован: 23.05.2010(UTC)
Сообщений: 8
Баллов: 24

Углубившись в документацию, я нашел только одну однозначную рекомендацию - при указании пути к локальным файлам лучше использовать относительные пути, чем URL (во втором варианте, как я понимаю, запрос совершает своеобразный крюк.. думаю, что подтверждение есть где-то в модели osi).

Что же касается выбора между относительными и абсолютными путями, то тот самый разработчик пояснил - использование относительного пути делает код потенциально опасным, так как не исключает возможности инъекции - подмены пути. Ну, естественно, если разработчик не позаботился о безопасности дополнительно, а злоумышленник к тому же знаком с программой\скриптом\движком. Насколько это утверждение верно?
Elena.Benker
#6 Оставлено : 16 октября 2010 г. 14:32:05(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 01.10.2005(UTC)
Сообщений: 136
Баллов: 408
Откуда: Russia St. Petersburg

Поблагодарили: 1 раз в 1 постах
Нет в операционной системе никакого основания для каких-то крюков!
Подмена кода вообще - это, конечно, опасность. Но подменить можно любой фрагмент кода, не только пути.
Т.е. надо решать проблемы безопасности в комплексе.
Ведь в программе приходится хранить и пароль доступа к базе данных.
Мне кажется, что в погоне за безопасностью надо знать меру.
Takker
#7 Оставлено : 16 октября 2010 г. 15:04:03(UTC)
Ранг: Новичок

Группы: Зарегистрированные пользователи
Зарегистрирован: 23.05.2010(UTC)
Сообщений: 8
Баллов: 24

Большое спасибо, Елена Сергеевна, за подробные разъяснения.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.