[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как указать путь, ибо что бы не править ручками
Страницы: 1, 2
VeRTak
Всем привет, вот кусок кода


<?php defined('KEY') OR exit(file_get_contents('../../application/views/error/404.html'));


Как обойти что бы постоянно не исправлять путь до файла с ошибкой?

Переадресацию не предлагать
VeRTak
Может через $_SERVER['DOCUMENT_ROOT']

На сколько это будет адекватно?
killer8080
а не проще вынести эти файлы из паблик? Ну или если нет такой возможности, ограничить доступ к ним через .htaccess?

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

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
VeRTak
killer8080
Цитата (killer8080 @ 9.10.2015 - 09:20)
ограничить доступ к ним через .htaccess?

inpost
Цитата (inpost @ 9.10.2015 - 10:28)
реврайтом запретить доступ к .php файлам

Можно и так, но зачем затрагивать сервер когда можно организовать это по коду? Чем плох такой вариант?
killer8080
Цитата (Wind @ 9.10.2015 - 09:36)
Чем плох такой вариант?

хардкодингом файловый путей, нельзя использовать код повторно в другом месте без рефакторинга.
VeRTak
killer8080

Ну из-за этого и была создана тема :D Можно же вот так


<?php defined('KEY') OR exit(file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/application/views/error/404.html'));


Чем это плохо?

Я почему спрашиваю, потому что не знаю плохо это или хорошо. Если плохо то чем?
killer8080
Цитата (Wind @ 9.10.2015 - 09:48)
Чем это плохо?

1 сайт необязательно должен находится в корне DOCUMENT_ROOT
2 $_SERVER['DOCUMENT_ROOT'] это переменная окружения сервера полученная PHP из вне, на неё нельзя особо полагаться, она зависит от конфигурации сервера, и в некоторых случаях может указывать неправильный путь, не говоря уже наличии/отсутствии слеша в конце. Доверять можно только встроенным волшебным константам __DIR__, __FILE__, но в любом случае ты жестко завязываешься на файловую структуру, что затрудняет переносимость кода.

Другой вопрос, для чего вообще нужна эта защита? Если это просто файл с декларацией функции или класса, или массив с конфигом, то прямой вызов этого php файла ничем не грозит в плане безопасности.
VeRTak
killer8080

Спасибо за развернутый ответ smile.gif

Цитата (killer8080 @ 9.10.2015 - 11:05)
Другой вопрос, для чего вообще нужна эта защита? Если это просто файл с декларацией функции или класса, или массив с конфигом, то прямой вызов этого php файла ничем не грозит в плане безопасности.


На всякий случай smile.gif если открыть файл по url которого нет у меня выдает ошибку, а если есть то белый экран, вот это и не дает покоя biggrin.gif
Invis1ble
Цитата (killer8080 @ 9.10.2015 - 11:05)
Если это просто файл с декларацией функции или класса, или массив с конфигом, то прямой вызов этого php файла ничем не грозит в плане безопасности.
killer8080
Цитата (Invis1ble @ 9.10.2015 - 12:56)
раскрытие путей

его вариант никак от этого не спасает
Invis1ble
Цитата (killer8080 @ 9.10.2015 - 14:16)
его вариант никак от этого не спасает

Почему? 404 ошибка же. Если он использует этот же шаблон для обычной 404, то вполне себе спасает.
Правда, заголовки соответствующие слать еще надо.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

killer8080
Цитата (Invis1ble @ 9.10.2015 - 13:18)
Почему? 404 ошибка же.

нет, сервер же ответит кодом 200 в его варианте.
Invis1ble
Цитата (killer8080 @ 9.10.2015 - 14:21)
Цитата (Invis1ble @ 9.10.2015 - 13:18)
Почему? 404 ошибка же.

нет, сервер же ответит кодом 200 в его варианте.

ну, я уточнил уже выше про заголовки smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

killer8080
Цитата (Invis1ble @ 9.10.2015 - 13:23)
ну, я уточнил уже выше про заголовки

когда я отвечал, ты еще не подправил пост smile.gif
В любом случае это неправильно хардкодить защиту в каждом файле, правильно
Цитата (killer8080 @ 9.10.2015 - 09:22)
вынести эти файлы из паблик? Ну или если нет такой возможности, ограничить доступ к ним через .htaccess?

решать вопросы безопасности сервера, на уровне сервера
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.