Надо запретить доступ на просмотр нескольких файлов (их может быть тысячи). Например: header.php, footer.php
, (они находятся в /include/тут
.
Как это сделать?
Так, чтобы пользователь видел ошибку 404 например, но другой скрипт видел этот файл (например index.php
, include_once 'include/header.php'
;).
Я думал брать условием, если текущий адрес например: localhost/include/header.php, то выводить 404. Как это правильней сделать?
Правильно было бы вынести этот каталог за пределы корня сайта. Это самое надежное решение.
Чуть менее правильно было бы сделать это на стороне сервера. Например, в nginx это делается так:
location /include/ {
internal;
}
Если так, как выше, сделать нельзя, то можно в файле с настройками или прямо в index.php
определить функцию, которая ничего не делает. Затем в начале каждого файла в каталоге include
вызывать эту функцию. Так как функция будет неизвестна если файл вызывается напрямую, то будет ошибка и выполнение остановится.
Пример функции из файла с настройками:
function internal() {}
Пример использования:
<?php
internal();
// дальше обычный код
// который не выполнится если функция выше не определена
// а определена она будет только если этот файл включается откуда-то
Если я правильно понял, нужно запретить прямой переход по ссылке, так?
Я это делал так:
Поскольку сайт был по модели mvc и всё грузилось из index.php, то в этом index.php я дефайнил переменную, например так - define("VALID_CALL", true), и если на странице эта переменная не isset (а установлена она может быть только в index.php), значит вызов был не из индекса - запрещаем дальнейшую загрузку страницы или выводим своё сообщение с ошибкой.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу научиться работать с woocommerce wp, чтобы верстку с нуля интегрировать, подскажите пожалуйста хорошие видеоуроки или сайты с хорошим пояснением
php5, я поставил расширение XHprof, сервер работает под Ubuntu 1404, но когда я пытаюсь его поюзать, получаю 502 Bad Gateway